+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/EasyTrans/Include/Python-ast.h b/EasyTrans/Include/Python-ast.h
deleted file mode 100644
index 8e0f750a..00000000
--- a/EasyTrans/Include/Python-ast.h
+++ /dev/null
@@ -1,637 +0,0 @@
-/* File automatically generated by Parser/asdl_c.py. */
-
-#include "asdl.h"
-
-typedef struct _mod *mod_ty;
-
-typedef struct _stmt *stmt_ty;
-
-typedef struct _expr *expr_ty;
-
-typedef enum _expr_context { Load=1, Store=2, Del=3, AugLoad=4, AugStore=5,
- Param=6 } expr_context_ty;
-
-typedef struct _slice *slice_ty;
-
-typedef enum _boolop { And=1, Or=2 } boolop_ty;
-
-typedef enum _operator { Add=1, Sub=2, Mult=3, MatMult=4, Div=5, Mod=6, Pow=7,
- LShift=8, RShift=9, BitOr=10, BitXor=11, BitAnd=12,
- FloorDiv=13 } operator_ty;
-
-typedef enum _unaryop { Invert=1, Not=2, UAdd=3, USub=4 } unaryop_ty;
-
-typedef enum _cmpop { Eq=1, NotEq=2, Lt=3, LtE=4, Gt=5, GtE=6, Is=7, IsNot=8,
- In=9, NotIn=10 } cmpop_ty;
-
-typedef struct _comprehension *comprehension_ty;
-
-typedef struct _excepthandler *excepthandler_ty;
-
-typedef struct _arguments *arguments_ty;
-
-typedef struct _arg *arg_ty;
-
-typedef struct _keyword *keyword_ty;
-
-typedef struct _alias *alias_ty;
-
-typedef struct _withitem *withitem_ty;
-
-
-enum _mod_kind {Module_kind=1, Interactive_kind=2, Expression_kind=3,
- Suite_kind=4};
-struct _mod {
- enum _mod_kind kind;
- union {
- struct {
- asdl_seq *body;
- } Module;
-
- struct {
- asdl_seq *body;
- } Interactive;
-
- struct {
- expr_ty body;
- } Expression;
-
- struct {
- asdl_seq *body;
- } Suite;
-
- } v;
-};
-
-enum _stmt_kind {FunctionDef_kind=1, AsyncFunctionDef_kind=2, ClassDef_kind=3,
- Return_kind=4, Delete_kind=5, Assign_kind=6,
- AugAssign_kind=7, AnnAssign_kind=8, For_kind=9,
- AsyncFor_kind=10, While_kind=11, If_kind=12, With_kind=13,
- AsyncWith_kind=14, Raise_kind=15, Try_kind=16,
- Assert_kind=17, Import_kind=18, ImportFrom_kind=19,
- Global_kind=20, Nonlocal_kind=21, Expr_kind=22, Pass_kind=23,
- Break_kind=24, Continue_kind=25};
-struct _stmt {
- enum _stmt_kind kind;
- union {
- struct {
- identifier name;
- arguments_ty args;
- asdl_seq *body;
- asdl_seq *decorator_list;
- expr_ty returns;
- } FunctionDef;
-
- struct {
- identifier name;
- arguments_ty args;
- asdl_seq *body;
- asdl_seq *decorator_list;
- expr_ty returns;
- } AsyncFunctionDef;
-
- struct {
- identifier name;
- asdl_seq *bases;
- asdl_seq *keywords;
- asdl_seq *body;
- asdl_seq *decorator_list;
- } ClassDef;
-
- struct {
- expr_ty value;
- } Return;
-
- struct {
- asdl_seq *targets;
- } Delete;
-
- struct {
- asdl_seq *targets;
- expr_ty value;
- } Assign;
-
- struct {
- expr_ty target;
- operator_ty op;
- expr_ty value;
- } AugAssign;
-
- struct {
- expr_ty target;
- expr_ty annotation;
- expr_ty value;
- int simple;
- } AnnAssign;
-
- struct {
- expr_ty target;
- expr_ty iter;
- asdl_seq *body;
- asdl_seq *orelse;
- } For;
-
- struct {
- expr_ty target;
- expr_ty iter;
- asdl_seq *body;
- asdl_seq *orelse;
- } AsyncFor;
-
- struct {
- expr_ty test;
- asdl_seq *body;
- asdl_seq *orelse;
- } While;
-
- struct {
- expr_ty test;
- asdl_seq *body;
- asdl_seq *orelse;
- } If;
-
- struct {
- asdl_seq *items;
- asdl_seq *body;
- } With;
-
- struct {
- asdl_seq *items;
- asdl_seq *body;
- } AsyncWith;
-
- struct {
- expr_ty exc;
- expr_ty cause;
- } Raise;
-
- struct {
- asdl_seq *body;
- asdl_seq *handlers;
- asdl_seq *orelse;
- asdl_seq *finalbody;
- } Try;
-
- struct {
- expr_ty test;
- expr_ty msg;
- } Assert;
-
- struct {
- asdl_seq *names;
- } Import;
-
- struct {
- identifier module;
- asdl_seq *names;
- int level;
- } ImportFrom;
-
- struct {
- asdl_seq *names;
- } Global;
-
- struct {
- asdl_seq *names;
- } Nonlocal;
-
- struct {
- expr_ty value;
- } Expr;
-
- } v;
- int lineno;
- int col_offset;
-};
-
-enum _expr_kind {BoolOp_kind=1, BinOp_kind=2, UnaryOp_kind=3, Lambda_kind=4,
- IfExp_kind=5, Dict_kind=6, Set_kind=7, ListComp_kind=8,
- SetComp_kind=9, DictComp_kind=10, GeneratorExp_kind=11,
- Await_kind=12, Yield_kind=13, YieldFrom_kind=14,
- Compare_kind=15, Call_kind=16, Num_kind=17, Str_kind=18,
- FormattedValue_kind=19, JoinedStr_kind=20, Bytes_kind=21,
- NameConstant_kind=22, Ellipsis_kind=23, Constant_kind=24,
- Attribute_kind=25, Subscript_kind=26, Starred_kind=27,
- Name_kind=28, List_kind=29, Tuple_kind=30};
-struct _expr {
- enum _expr_kind kind;
- union {
- struct {
- boolop_ty op;
- asdl_seq *values;
- } BoolOp;
-
- struct {
- expr_ty left;
- operator_ty op;
- expr_ty right;
- } BinOp;
-
- struct {
- unaryop_ty op;
- expr_ty operand;
- } UnaryOp;
-
- struct {
- arguments_ty args;
- expr_ty body;
- } Lambda;
-
- struct {
- expr_ty test;
- expr_ty body;
- expr_ty orelse;
- } IfExp;
-
- struct {
- asdl_seq *keys;
- asdl_seq *values;
- } Dict;
-
- struct {
- asdl_seq *elts;
- } Set;
-
- struct {
- expr_ty elt;
- asdl_seq *generators;
- } ListComp;
-
- struct {
- expr_ty elt;
- asdl_seq *generators;
- } SetComp;
-
- struct {
- expr_ty key;
- expr_ty value;
- asdl_seq *generators;
- } DictComp;
-
- struct {
- expr_ty elt;
- asdl_seq *generators;
- } GeneratorExp;
-
- struct {
- expr_ty value;
- } Await;
-
- struct {
- expr_ty value;
- } Yield;
-
- struct {
- expr_ty value;
- } YieldFrom;
-
- struct {
- expr_ty left;
- asdl_int_seq *ops;
- asdl_seq *comparators;
- } Compare;
-
- struct {
- expr_ty func;
- asdl_seq *args;
- asdl_seq *keywords;
- } Call;
-
- struct {
- object n;
- } Num;
-
- struct {
- string s;
- } Str;
-
- struct {
- expr_ty value;
- int conversion;
- expr_ty format_spec;
- } FormattedValue;
-
- struct {
- asdl_seq *values;
- } JoinedStr;
-
- struct {
- bytes s;
- } Bytes;
-
- struct {
- singleton value;
- } NameConstant;
-
- struct {
- constant value;
- } Constant;
-
- struct {
- expr_ty value;
- identifier attr;
- expr_context_ty ctx;
- } Attribute;
-
- struct {
- expr_ty value;
- slice_ty slice;
- expr_context_ty ctx;
- } Subscript;
-
- struct {
- expr_ty value;
- expr_context_ty ctx;
- } Starred;
-
- struct {
- identifier id;
- expr_context_ty ctx;
- } Name;
-
- struct {
- asdl_seq *elts;
- expr_context_ty ctx;
- } List;
-
- struct {
- asdl_seq *elts;
- expr_context_ty ctx;
- } Tuple;
-
- } v;
- int lineno;
- int col_offset;
-};
-
-enum _slice_kind {Slice_kind=1, ExtSlice_kind=2, Index_kind=3};
-struct _slice {
- enum _slice_kind kind;
- union {
- struct {
- expr_ty lower;
- expr_ty upper;
- expr_ty step;
- } Slice;
-
- struct {
- asdl_seq *dims;
- } ExtSlice;
-
- struct {
- expr_ty value;
- } Index;
-
- } v;
-};
-
-struct _comprehension {
- expr_ty target;
- expr_ty iter;
- asdl_seq *ifs;
- int is_async;
-};
-
-enum _excepthandler_kind {ExceptHandler_kind=1};
-struct _excepthandler {
- enum _excepthandler_kind kind;
- union {
- struct {
- expr_ty type;
- identifier name;
- asdl_seq *body;
- } ExceptHandler;
-
- } v;
- int lineno;
- int col_offset;
-};
-
-struct _arguments {
- asdl_seq *args;
- arg_ty vararg;
- asdl_seq *kwonlyargs;
- asdl_seq *kw_defaults;
- arg_ty kwarg;
- asdl_seq *defaults;
-};
-
-struct _arg {
- identifier arg;
- expr_ty annotation;
- int lineno;
- int col_offset;
-};
-
-struct _keyword {
- identifier arg;
- expr_ty value;
-};
-
-struct _alias {
- identifier name;
- identifier asname;
-};
-
-struct _withitem {
- expr_ty context_expr;
- expr_ty optional_vars;
-};
-
-
-#define Module(a0, a1) _Py_Module(a0, a1)
-mod_ty _Py_Module(asdl_seq * body, PyArena *arena);
-#define Interactive(a0, a1) _Py_Interactive(a0, a1)
-mod_ty _Py_Interactive(asdl_seq * body, PyArena *arena);
-#define Expression(a0, a1) _Py_Expression(a0, a1)
-mod_ty _Py_Expression(expr_ty body, PyArena *arena);
-#define Suite(a0, a1) _Py_Suite(a0, a1)
-mod_ty _Py_Suite(asdl_seq * body, PyArena *arena);
-#define FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7)
-stmt_ty _Py_FunctionDef(identifier name, arguments_ty args, asdl_seq * body,
- asdl_seq * decorator_list, expr_ty returns, int lineno,
- int col_offset, PyArena *arena);
-#define AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7)
-stmt_ty _Py_AsyncFunctionDef(identifier name, arguments_ty args, asdl_seq *
- body, asdl_seq * decorator_list, expr_ty returns,
- int lineno, int col_offset, PyArena *arena);
-#define ClassDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_ClassDef(a0, a1, a2, a3, a4, a5, a6, a7)
-stmt_ty _Py_ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords,
- asdl_seq * body, asdl_seq * decorator_list, int lineno,
- int col_offset, PyArena *arena);
-#define Return(a0, a1, a2, a3) _Py_Return(a0, a1, a2, a3)
-stmt_ty _Py_Return(expr_ty value, int lineno, int col_offset, PyArena *arena);
-#define Delete(a0, a1, a2, a3) _Py_Delete(a0, a1, a2, a3)
-stmt_ty _Py_Delete(asdl_seq * targets, int lineno, int col_offset, PyArena
- *arena);
-#define Assign(a0, a1, a2, a3, a4) _Py_Assign(a0, a1, a2, a3, a4)
-stmt_ty _Py_Assign(asdl_seq * targets, expr_ty value, int lineno, int
- col_offset, PyArena *arena);
-#define AugAssign(a0, a1, a2, a3, a4, a5) _Py_AugAssign(a0, a1, a2, a3, a4, a5)
-stmt_ty _Py_AugAssign(expr_ty target, operator_ty op, expr_ty value, int
- lineno, int col_offset, PyArena *arena);
-#define AnnAssign(a0, a1, a2, a3, a4, a5, a6) _Py_AnnAssign(a0, a1, a2, a3, a4, a5, a6)
-stmt_ty _Py_AnnAssign(expr_ty target, expr_ty annotation, expr_ty value, int
- simple, int lineno, int col_offset, PyArena *arena);
-#define For(a0, a1, a2, a3, a4, a5, a6) _Py_For(a0, a1, a2, a3, a4, a5, a6)
-stmt_ty _Py_For(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq *
- orelse, int lineno, int col_offset, PyArena *arena);
-#define AsyncFor(a0, a1, a2, a3, a4, a5, a6) _Py_AsyncFor(a0, a1, a2, a3, a4, a5, a6)
-stmt_ty _Py_AsyncFor(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq *
- orelse, int lineno, int col_offset, PyArena *arena);
-#define While(a0, a1, a2, a3, a4, a5) _Py_While(a0, a1, a2, a3, a4, a5)
-stmt_ty _Py_While(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno,
- int col_offset, PyArena *arena);
-#define If(a0, a1, a2, a3, a4, a5) _Py_If(a0, a1, a2, a3, a4, a5)
-stmt_ty _Py_If(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno,
- int col_offset, PyArena *arena);
-#define With(a0, a1, a2, a3, a4) _Py_With(a0, a1, a2, a3, a4)
-stmt_ty _Py_With(asdl_seq * items, asdl_seq * body, int lineno, int col_offset,
- PyArena *arena);
-#define AsyncWith(a0, a1, a2, a3, a4) _Py_AsyncWith(a0, a1, a2, a3, a4)
-stmt_ty _Py_AsyncWith(asdl_seq * items, asdl_seq * body, int lineno, int
- col_offset, PyArena *arena);
-#define Raise(a0, a1, a2, a3, a4) _Py_Raise(a0, a1, a2, a3, a4)
-stmt_ty _Py_Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset,
- PyArena *arena);
-#define Try(a0, a1, a2, a3, a4, a5, a6) _Py_Try(a0, a1, a2, a3, a4, a5, a6)
-stmt_ty _Py_Try(asdl_seq * body, asdl_seq * handlers, asdl_seq * orelse,
- asdl_seq * finalbody, int lineno, int col_offset, PyArena
- *arena);
-#define Assert(a0, a1, a2, a3, a4) _Py_Assert(a0, a1, a2, a3, a4)
-stmt_ty _Py_Assert(expr_ty test, expr_ty msg, int lineno, int col_offset,
- PyArena *arena);
-#define Import(a0, a1, a2, a3) _Py_Import(a0, a1, a2, a3)
-stmt_ty _Py_Import(asdl_seq * names, int lineno, int col_offset, PyArena
- *arena);
-#define ImportFrom(a0, a1, a2, a3, a4, a5) _Py_ImportFrom(a0, a1, a2, a3, a4, a5)
-stmt_ty _Py_ImportFrom(identifier module, asdl_seq * names, int level, int
- lineno, int col_offset, PyArena *arena);
-#define Global(a0, a1, a2, a3) _Py_Global(a0, a1, a2, a3)
-stmt_ty _Py_Global(asdl_seq * names, int lineno, int col_offset, PyArena
- *arena);
-#define Nonlocal(a0, a1, a2, a3) _Py_Nonlocal(a0, a1, a2, a3)
-stmt_ty _Py_Nonlocal(asdl_seq * names, int lineno, int col_offset, PyArena
- *arena);
-#define Expr(a0, a1, a2, a3) _Py_Expr(a0, a1, a2, a3)
-stmt_ty _Py_Expr(expr_ty value, int lineno, int col_offset, PyArena *arena);
-#define Pass(a0, a1, a2) _Py_Pass(a0, a1, a2)
-stmt_ty _Py_Pass(int lineno, int col_offset, PyArena *arena);
-#define Break(a0, a1, a2) _Py_Break(a0, a1, a2)
-stmt_ty _Py_Break(int lineno, int col_offset, PyArena *arena);
-#define Continue(a0, a1, a2) _Py_Continue(a0, a1, a2)
-stmt_ty _Py_Continue(int lineno, int col_offset, PyArena *arena);
-#define BoolOp(a0, a1, a2, a3, a4) _Py_BoolOp(a0, a1, a2, a3, a4)
-expr_ty _Py_BoolOp(boolop_ty op, asdl_seq * values, int lineno, int col_offset,
- PyArena *arena);
-#define BinOp(a0, a1, a2, a3, a4, a5) _Py_BinOp(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno, int
- col_offset, PyArena *arena);
-#define UnaryOp(a0, a1, a2, a3, a4) _Py_UnaryOp(a0, a1, a2, a3, a4)
-expr_ty _Py_UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int col_offset,
- PyArena *arena);
-#define Lambda(a0, a1, a2, a3, a4) _Py_Lambda(a0, a1, a2, a3, a4)
-expr_ty _Py_Lambda(arguments_ty args, expr_ty body, int lineno, int col_offset,
- PyArena *arena);
-#define IfExp(a0, a1, a2, a3, a4, a5) _Py_IfExp(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno, int
- col_offset, PyArena *arena);
-#define Dict(a0, a1, a2, a3, a4) _Py_Dict(a0, a1, a2, a3, a4)
-expr_ty _Py_Dict(asdl_seq * keys, asdl_seq * values, int lineno, int
- col_offset, PyArena *arena);
-#define Set(a0, a1, a2, a3) _Py_Set(a0, a1, a2, a3)
-expr_ty _Py_Set(asdl_seq * elts, int lineno, int col_offset, PyArena *arena);
-#define ListComp(a0, a1, a2, a3, a4) _Py_ListComp(a0, a1, a2, a3, a4)
-expr_ty _Py_ListComp(expr_ty elt, asdl_seq * generators, int lineno, int
- col_offset, PyArena *arena);
-#define SetComp(a0, a1, a2, a3, a4) _Py_SetComp(a0, a1, a2, a3, a4)
-expr_ty _Py_SetComp(expr_ty elt, asdl_seq * generators, int lineno, int
- col_offset, PyArena *arena);
-#define DictComp(a0, a1, a2, a3, a4, a5) _Py_DictComp(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_DictComp(expr_ty key, expr_ty value, asdl_seq * generators, int
- lineno, int col_offset, PyArena *arena);
-#define GeneratorExp(a0, a1, a2, a3, a4) _Py_GeneratorExp(a0, a1, a2, a3, a4)
-expr_ty _Py_GeneratorExp(expr_ty elt, asdl_seq * generators, int lineno, int
- col_offset, PyArena *arena);
-#define Await(a0, a1, a2, a3) _Py_Await(a0, a1, a2, a3)
-expr_ty _Py_Await(expr_ty value, int lineno, int col_offset, PyArena *arena);
-#define Yield(a0, a1, a2, a3) _Py_Yield(a0, a1, a2, a3)
-expr_ty _Py_Yield(expr_ty value, int lineno, int col_offset, PyArena *arena);
-#define YieldFrom(a0, a1, a2, a3) _Py_YieldFrom(a0, a1, a2, a3)
-expr_ty _Py_YieldFrom(expr_ty value, int lineno, int col_offset, PyArena
- *arena);
-#define Compare(a0, a1, a2, a3, a4, a5) _Py_Compare(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators,
- int lineno, int col_offset, PyArena *arena);
-#define Call(a0, a1, a2, a3, a4, a5) _Py_Call(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, int
- lineno, int col_offset, PyArena *arena);
-#define Num(a0, a1, a2, a3) _Py_Num(a0, a1, a2, a3)
-expr_ty _Py_Num(object n, int lineno, int col_offset, PyArena *arena);
-#define Str(a0, a1, a2, a3) _Py_Str(a0, a1, a2, a3)
-expr_ty _Py_Str(string s, int lineno, int col_offset, PyArena *arena);
-#define FormattedValue(a0, a1, a2, a3, a4, a5) _Py_FormattedValue(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_FormattedValue(expr_ty value, int conversion, expr_ty format_spec,
- int lineno, int col_offset, PyArena *arena);
-#define JoinedStr(a0, a1, a2, a3) _Py_JoinedStr(a0, a1, a2, a3)
-expr_ty _Py_JoinedStr(asdl_seq * values, int lineno, int col_offset, PyArena
- *arena);
-#define Bytes(a0, a1, a2, a3) _Py_Bytes(a0, a1, a2, a3)
-expr_ty _Py_Bytes(bytes s, int lineno, int col_offset, PyArena *arena);
-#define NameConstant(a0, a1, a2, a3) _Py_NameConstant(a0, a1, a2, a3)
-expr_ty _Py_NameConstant(singleton value, int lineno, int col_offset, PyArena
- *arena);
-#define Ellipsis(a0, a1, a2) _Py_Ellipsis(a0, a1, a2)
-expr_ty _Py_Ellipsis(int lineno, int col_offset, PyArena *arena);
-#define Constant(a0, a1, a2, a3) _Py_Constant(a0, a1, a2, a3)
-expr_ty _Py_Constant(constant value, int lineno, int col_offset, PyArena
- *arena);
-#define Attribute(a0, a1, a2, a3, a4, a5) _Py_Attribute(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_Attribute(expr_ty value, identifier attr, expr_context_ty ctx, int
- lineno, int col_offset, PyArena *arena);
-#define Subscript(a0, a1, a2, a3, a4, a5) _Py_Subscript(a0, a1, a2, a3, a4, a5)
-expr_ty _Py_Subscript(expr_ty value, slice_ty slice, expr_context_ty ctx, int
- lineno, int col_offset, PyArena *arena);
-#define Starred(a0, a1, a2, a3, a4) _Py_Starred(a0, a1, a2, a3, a4)
-expr_ty _Py_Starred(expr_ty value, expr_context_ty ctx, int lineno, int
- col_offset, PyArena *arena);
-#define Name(a0, a1, a2, a3, a4) _Py_Name(a0, a1, a2, a3, a4)
-expr_ty _Py_Name(identifier id, expr_context_ty ctx, int lineno, int
- col_offset, PyArena *arena);
-#define List(a0, a1, a2, a3, a4) _Py_List(a0, a1, a2, a3, a4)
-expr_ty _Py_List(asdl_seq * elts, expr_context_ty ctx, int lineno, int
- col_offset, PyArena *arena);
-#define Tuple(a0, a1, a2, a3, a4) _Py_Tuple(a0, a1, a2, a3, a4)
-expr_ty _Py_Tuple(asdl_seq * elts, expr_context_ty ctx, int lineno, int
- col_offset, PyArena *arena);
-#define Slice(a0, a1, a2, a3) _Py_Slice(a0, a1, a2, a3)
-slice_ty _Py_Slice(expr_ty lower, expr_ty upper, expr_ty step, PyArena *arena);
-#define ExtSlice(a0, a1) _Py_ExtSlice(a0, a1)
-slice_ty _Py_ExtSlice(asdl_seq * dims, PyArena *arena);
-#define Index(a0, a1) _Py_Index(a0, a1)
-slice_ty _Py_Index(expr_ty value, PyArena *arena);
-#define comprehension(a0, a1, a2, a3, a4) _Py_comprehension(a0, a1, a2, a3, a4)
-comprehension_ty _Py_comprehension(expr_ty target, expr_ty iter, asdl_seq *
- ifs, int is_async, PyArena *arena);
-#define ExceptHandler(a0, a1, a2, a3, a4, a5) _Py_ExceptHandler(a0, a1, a2, a3, a4, a5)
-excepthandler_ty _Py_ExceptHandler(expr_ty type, identifier name, asdl_seq *
- body, int lineno, int col_offset, PyArena
- *arena);
-#define arguments(a0, a1, a2, a3, a4, a5, a6) _Py_arguments(a0, a1, a2, a3, a4, a5, a6)
-arguments_ty _Py_arguments(asdl_seq * args, arg_ty vararg, asdl_seq *
- kwonlyargs, asdl_seq * kw_defaults, arg_ty kwarg,
- asdl_seq * defaults, PyArena *arena);
-#define arg(a0, a1, a2, a3, a4) _Py_arg(a0, a1, a2, a3, a4)
-arg_ty _Py_arg(identifier arg, expr_ty annotation, int lineno, int col_offset,
- PyArena *arena);
-#define keyword(a0, a1, a2) _Py_keyword(a0, a1, a2)
-keyword_ty _Py_keyword(identifier arg, expr_ty value, PyArena *arena);
-#define alias(a0, a1, a2) _Py_alias(a0, a1, a2)
-alias_ty _Py_alias(identifier name, identifier asname, PyArena *arena);
-#define withitem(a0, a1, a2) _Py_withitem(a0, a1, a2)
-withitem_ty _Py_withitem(expr_ty context_expr, expr_ty optional_vars, PyArena
- *arena);
-
-PyObject* PyAST_mod2obj(mod_ty t);
-mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);
-int PyAST_Check(PyObject* obj);
diff --git a/EasyTrans/Include/Python.h b/EasyTrans/Include/Python.h
deleted file mode 100644
index 54ea3214..00000000
--- a/EasyTrans/Include/Python.h
+++ /dev/null
@@ -1,159 +0,0 @@
-#ifndef Py_PYTHON_H
-#define Py_PYTHON_H
-/* Since this is a "meta-include" file, no #ifdef __cplusplus / extern "C" { */
-
-/* Include nearly all Python header files */
-
-#include "patchlevel.h"
-#include "pyconfig.h"
-#include "pymacconfig.h"
-
-#include
-
-#ifndef UCHAR_MAX
-#error "Something's broken. UCHAR_MAX should be defined in limits.h."
-#endif
-
-#if UCHAR_MAX != 255
-#error "Python's source code assumes C's unsigned char is an 8-bit type."
-#endif
-
-#if defined(__sgi) && !defined(_SGI_MP_SOURCE)
-#define _SGI_MP_SOURCE
-#endif
-
-#include
-#ifndef NULL
-# error "Python.h requires that stdio.h define NULL."
-#endif
-
-#include
-#ifdef HAVE_ERRNO_H
-#include
-#endif
-#include
-#ifdef HAVE_UNISTD_H
-#include
-#endif
-#ifdef HAVE_CRYPT_H
-#if defined(HAVE_CRYPT_R) && !defined(_GNU_SOURCE)
-/* Required for glibc to expose the crypt_r() function prototype. */
-# define _GNU_SOURCE
-# define _Py_GNU_SOURCE_FOR_CRYPT
-#endif
-#include
-#ifdef _Py_GNU_SOURCE_FOR_CRYPT
-/* Don't leak the _GNU_SOURCE define to other headers. */
-# undef _GNU_SOURCE
-# undef _Py_GNU_SOURCE_FOR_CRYPT
-#endif
-#endif
-
-/* For size_t? */
-#ifdef HAVE_STDDEF_H
-#include
-#endif
-
-/* CAUTION: Build setups should ensure that NDEBUG is defined on the
- * compiler command line when building Python in release mode; else
- * assert() calls won't be removed.
- */
-#include
-
-#include "pyport.h"
-#include "pymacro.h"
-
-/* A convenient way for code to know if clang's memory sanitizer is enabled. */
-#if defined(__has_feature)
-# if __has_feature(memory_sanitizer)
-# if !defined(_Py_MEMORY_SANITIZER)
-# define _Py_MEMORY_SANITIZER
-# endif
-# endif
-#endif
-
-#include "pyatomic.h"
-
-/* Debug-mode build with pymalloc implies PYMALLOC_DEBUG.
- * PYMALLOC_DEBUG is in error if pymalloc is not in use.
- */
-#if defined(Py_DEBUG) && defined(WITH_PYMALLOC) && !defined(PYMALLOC_DEBUG)
-#define PYMALLOC_DEBUG
-#endif
-#if defined(PYMALLOC_DEBUG) && !defined(WITH_PYMALLOC)
-#error "PYMALLOC_DEBUG requires WITH_PYMALLOC"
-#endif
-#include "pymath.h"
-#include "pytime.h"
-#include "pymem.h"
-
-#include "object.h"
-#include "objimpl.h"
-#include "typeslots.h"
-#include "pyhash.h"
-
-#include "pydebug.h"
-
-#include "bytearrayobject.h"
-#include "bytesobject.h"
-#include "unicodeobject.h"
-#include "longobject.h"
-#include "longintrepr.h"
-#include "boolobject.h"
-#include "floatobject.h"
-#include "complexobject.h"
-#include "rangeobject.h"
-#include "memoryobject.h"
-#include "tupleobject.h"
-#include "listobject.h"
-#include "dictobject.h"
-#include "odictobject.h"
-#include "enumobject.h"
-#include "setobject.h"
-#include "methodobject.h"
-#include "moduleobject.h"
-#include "funcobject.h"
-#include "classobject.h"
-#include "fileobject.h"
-#include "pycapsule.h"
-#include "traceback.h"
-#include "sliceobject.h"
-#include "cellobject.h"
-#include "iterobject.h"
-#include "genobject.h"
-#include "descrobject.h"
-#include "warnings.h"
-#include "weakrefobject.h"
-#include "structseq.h"
-#include "namespaceobject.h"
-
-#include "codecs.h"
-#include "pyerrors.h"
-
-#include "pystate.h"
-#include "context.h"
-
-#include "pyarena.h"
-#include "modsupport.h"
-#include "compile.h"
-#include "pythonrun.h"
-#include "pylifecycle.h"
-#include "ceval.h"
-#include "sysmodule.h"
-#include "osmodule.h"
-#include "intrcheck.h"
-#include "import.h"
-
-#include "abstract.h"
-#include "bltinmodule.h"
-
-#include "eval.h"
-
-#include "pyctype.h"
-#include "pystrtod.h"
-#include "pystrcmp.h"
-#include "dtoa.h"
-#include "fileutils.h"
-#include "pyfpe.h"
-
-#endif /* !Py_PYTHON_H */
diff --git a/EasyTrans/Include/abstract.h b/EasyTrans/Include/abstract.h
deleted file mode 100644
index 3fe5a006..00000000
--- a/EasyTrans/Include/abstract.h
+++ /dev/null
@@ -1,1109 +0,0 @@
-/* Abstract Object Interface (many thanks to Jim Fulton) */
-
-#ifndef Py_ABSTRACTOBJECT_H
-#define Py_ABSTRACTOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* === Object Protocol ================================================== */
-
-/* Implemented elsewhere:
-
- int PyObject_Print(PyObject *o, FILE *fp, int flags);
-
- Print an object 'o' on file 'fp'. Returns -1 on error. The flags argument
- is used to enable certain printing options. The only option currently
- supported is Py_Print_RAW.
-
- (What should be said about Py_Print_RAW?). */
-
-
-/* Implemented elsewhere:
-
- int PyObject_HasAttrString(PyObject *o, const char *attr_name);
-
- Returns 1 if object 'o' has the attribute attr_name, and 0 otherwise.
-
- This is equivalent to the Python expression: hasattr(o,attr_name).
-
- This function always succeeds. */
-
-
-/* Implemented elsewhere:
-
- PyObject* PyObject_GetAttrString(PyObject *o, const char *attr_name);
-
- Retrieve an attributed named attr_name form object o.
- Returns the attribute value on success, or NULL on failure.
-
- This is the equivalent of the Python expression: o.attr_name. */
-
-
-/* Implemented elsewhere:
-
- int PyObject_HasAttr(PyObject *o, PyObject *attr_name);
-
- Returns 1 if o has the attribute attr_name, and 0 otherwise.
-
- This is equivalent to the Python expression: hasattr(o,attr_name).
-
- This function always succeeds. */
-
-/* Implemented elsewhere:
-
- PyObject* PyObject_GetAttr(PyObject *o, PyObject *attr_name);
-
- Retrieve an attributed named 'attr_name' form object 'o'.
- Returns the attribute value on success, or NULL on failure.
-
- This is the equivalent of the Python expression: o.attr_name. */
-
-
-/* Implemented elsewhere:
-
- int PyObject_SetAttrString(PyObject *o, const char *attr_name, PyObject *v);
-
- Set the value of the attribute named attr_name, for object 'o',
- to the value 'v'. Raise an exception and return -1 on failure; return 0 on
- success.
-
- This is the equivalent of the Python statement o.attr_name=v. */
-
-
-/* Implemented elsewhere:
-
- int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v);
-
- Set the value of the attribute named attr_name, for object 'o', to the value
- 'v'. an exception and return -1 on failure; return 0 on success.
-
- This is the equivalent of the Python statement o.attr_name=v. */
-
-/* Implemented as a macro:
-
- int PyObject_DelAttrString(PyObject *o, const char *attr_name);
-
- Delete attribute named attr_name, for object o. Returns
- -1 on failure.
-
- This is the equivalent of the Python statement: del o.attr_name. */
-#define PyObject_DelAttrString(O,A) PyObject_SetAttrString((O),(A), NULL)
-
-
-/* Implemented as a macro:
-
- int PyObject_DelAttr(PyObject *o, PyObject *attr_name);
-
- Delete attribute named attr_name, for object o. Returns -1
- on failure. This is the equivalent of the Python
- statement: del o.attr_name. */
-#define PyObject_DelAttr(O,A) PyObject_SetAttr((O),(A), NULL)
-
-
-/* Implemented elsewhere:
-
- PyObject *PyObject_Repr(PyObject *o);
-
- Compute the string representation of object 'o'. Returns the
- string representation on success, NULL on failure.
-
- This is the equivalent of the Python expression: repr(o).
-
- Called by the repr() built-in function. */
-
-
-/* Implemented elsewhere:
-
- PyObject *PyObject_Str(PyObject *o);
-
- Compute the string representation of object, o. Returns the
- string representation on success, NULL on failure.
-
- This is the equivalent of the Python expression: str(o).
-
- Called by the str() and print() built-in functions. */
-
-
-/* Declared elsewhere
-
- PyAPI_FUNC(int) PyCallable_Check(PyObject *o);
-
- Determine if the object, o, is callable. Return 1 if the object is callable
- and 0 otherwise.
-
- This function always succeeds. */
-
-
-#ifdef PY_SSIZE_T_CLEAN
-# define PyObject_CallFunction _PyObject_CallFunction_SizeT
-# define PyObject_CallMethod _PyObject_CallMethod_SizeT
-# ifndef Py_LIMITED_API
-# define _PyObject_CallMethodId _PyObject_CallMethodId_SizeT
-# endif /* !Py_LIMITED_API */
-#endif
-
-
-/* Call a callable Python object 'callable' with arguments given by the
- tuple 'args' and keywords arguments given by the dictionary 'kwargs'.
-
- 'args' must not be *NULL*, use an empty tuple if no arguments are
- needed. If no named arguments are needed, 'kwargs' can be NULL.
-
- This is the equivalent of the Python expression:
- callable(*args, **kwargs). */
-PyAPI_FUNC(PyObject *) PyObject_Call(PyObject *callable,
- PyObject *args, PyObject *kwargs);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) _PyStack_AsTuple(
- PyObject *const *stack,
- Py_ssize_t nargs);
-
-PyAPI_FUNC(PyObject*) _PyStack_AsTupleSlice(
- PyObject *const *stack,
- Py_ssize_t nargs,
- Py_ssize_t start,
- Py_ssize_t end);
-
-/* Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)
- format to a Python dictionary ("kwargs" dict).
-
- The type of kwnames keys is not checked. The final function getting
- arguments is responsible to check if all keys are strings, for example using
- PyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().
-
- Duplicate keys are merged using the last value. If duplicate keys must raise
- an exception, the caller is responsible to implement an explicit keys on
- kwnames. */
-PyAPI_FUNC(PyObject *) _PyStack_AsDict(
- PyObject *const *values,
- PyObject *kwnames);
-
-/* Convert (args, nargs, kwargs: dict) into a (stack, nargs, kwnames: tuple).
-
- Return 0 on success, raise an exception and return -1 on error.
-
- Write the new stack into *p_stack. If *p_stack is differen than args, it
- must be released by PyMem_Free().
-
- The stack uses borrowed references.
-
- The type of keyword keys is not checked, these checks should be done
- later (ex: _PyArg_ParseStackAndKeywords). */
-PyAPI_FUNC(int) _PyStack_UnpackDict(
- PyObject *const *args,
- Py_ssize_t nargs,
- PyObject *kwargs,
- PyObject *const **p_stack,
- PyObject **p_kwnames);
-
-/* Suggested size (number of positional arguments) for arrays of PyObject*
- allocated on a C stack to avoid allocating memory on the heap memory. Such
- array is used to pass positional arguments to call functions of the
- _PyObject_FastCall() family.
-
- The size is chosen to not abuse the C stack and so limit the risk of stack
- overflow. The size is also chosen to allow using the small stack for most
- function calls of the Python standard library. On 64-bit CPU, it allocates
- 40 bytes on the stack. */
-#define _PY_FASTCALL_SMALL_STACK 5
-
-/* Return 1 if callable supports FASTCALL calling convention for positional
- arguments: see _PyObject_FastCallDict() and _PyObject_FastCallKeywords() */
-PyAPI_FUNC(int) _PyObject_HasFastCall(PyObject *callable);
-
-/* Call the callable object 'callable' with the "fast call" calling convention:
- args is a C array for positional arguments (nargs is the number of
- positional arguments), kwargs is a dictionary for keyword arguments.
-
- If nargs is equal to zero, args can be NULL. kwargs can be NULL.
- nargs must be greater or equal to zero.
-
- Return the result on success. Raise an exception and return NULL on
- error. */
-PyAPI_FUNC(PyObject *) _PyObject_FastCallDict(
- PyObject *callable,
- PyObject *const *args,
- Py_ssize_t nargs,
- PyObject *kwargs);
-
-/* Call the callable object 'callable' with the "fast call" calling convention:
- args is a C array for positional arguments followed by values of
- keyword arguments. Keys of keyword arguments are stored as a tuple
- of strings in kwnames. nargs is the number of positional parameters at
- the beginning of stack. The size of kwnames gives the number of keyword
- values in the stack after positional arguments.
-
- kwnames must only contains str strings, no subclass, and all keys must
- be unique.
-
- If nargs is equal to zero and there is no keyword argument (kwnames is
- NULL or its size is zero), args can be NULL.
-
- Return the result on success. Raise an exception and return NULL on
- error. */
-PyAPI_FUNC(PyObject *) _PyObject_FastCallKeywords(
- PyObject *callable,
- PyObject *const *args,
- Py_ssize_t nargs,
- PyObject *kwnames);
-
-#define _PyObject_FastCall(func, args, nargs) \
- _PyObject_FastCallDict((func), (args), (nargs), NULL)
-
-#define _PyObject_CallNoArg(func) \
- _PyObject_FastCallDict((func), NULL, 0, NULL)
-
-PyAPI_FUNC(PyObject *) _PyObject_Call_Prepend(
- PyObject *callable,
- PyObject *obj,
- PyObject *args,
- PyObject *kwargs);
-
-PyAPI_FUNC(PyObject *) _PyObject_FastCall_Prepend(
- PyObject *callable,
- PyObject *obj,
- PyObject *const *args,
- Py_ssize_t nargs);
-
-PyAPI_FUNC(PyObject *) _Py_CheckFunctionResult(PyObject *callable,
- PyObject *result,
- const char *where);
-#endif /* Py_LIMITED_API */
-
-
-/* Call a callable Python object 'callable', with arguments given by the
- tuple 'args'. If no arguments are needed, then 'args' can be *NULL*.
-
- Returns the result of the call on success, or *NULL* on failure.
-
- This is the equivalent of the Python expression:
- callable(*args). */
-PyAPI_FUNC(PyObject *) PyObject_CallObject(PyObject *callable,
- PyObject *args);
-
-/* Call a callable Python object, callable, with a variable number of C
- arguments. The C arguments are described using a mkvalue-style format
- string.
-
- The format may be NULL, indicating that no arguments are provided.
-
- Returns the result of the call on success, or NULL on failure.
-
- This is the equivalent of the Python expression:
- callable(arg1, arg2, ...). */
-PyAPI_FUNC(PyObject *) PyObject_CallFunction(PyObject *callable,
- const char *format, ...);
-
-/* Call the method named 'name' of object 'obj' with a variable number of
- C arguments. The C arguments are described by a mkvalue format string.
-
- The format can be NULL, indicating that no arguments are provided.
-
- Returns the result of the call on success, or NULL on failure.
-
- This is the equivalent of the Python expression:
- obj.name(arg1, arg2, ...). */
-PyAPI_FUNC(PyObject *) PyObject_CallMethod(PyObject *obj,
- const char *name,
- const char *format, ...);
-
-#ifndef Py_LIMITED_API
-/* Like PyObject_CallMethod(), but expect a _Py_Identifier*
- as the method name. */
-PyAPI_FUNC(PyObject *) _PyObject_CallMethodId(PyObject *obj,
- _Py_Identifier *name,
- const char *format, ...);
-#endif /* !Py_LIMITED_API */
-
-PyAPI_FUNC(PyObject *) _PyObject_CallFunction_SizeT(PyObject *callable,
- const char *format,
- ...);
-
-PyAPI_FUNC(PyObject *) _PyObject_CallMethod_SizeT(PyObject *obj,
- const char *name,
- const char *format,
- ...);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyObject_CallMethodId_SizeT(PyObject *obj,
- _Py_Identifier *name,
- const char *format,
- ...);
-#endif /* !Py_LIMITED_API */
-
-/* Call a callable Python object 'callable' with a variable number of C
- arguments. The C arguments are provided as PyObject* values, terminated
- by a NULL.
-
- Returns the result of the call on success, or NULL on failure.
-
- This is the equivalent of the Python expression:
- callable(arg1, arg2, ...). */
-PyAPI_FUNC(PyObject *) PyObject_CallFunctionObjArgs(PyObject *callable,
- ...);
-
-/* Call the method named 'name' of object 'obj' with a variable number of
- C arguments. The C arguments are provided as PyObject* values, terminated
- by NULL.
-
- Returns the result of the call on success, or NULL on failure.
-
- This is the equivalent of the Python expression: obj.name(*args). */
-
-PyAPI_FUNC(PyObject *) PyObject_CallMethodObjArgs(
- PyObject *obj,
- PyObject *name,
- ...);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyObject_CallMethodIdObjArgs(
- PyObject *obj,
- struct _Py_Identifier *name,
- ...);
-#endif /* !Py_LIMITED_API */
-
-
-/* Implemented elsewhere:
-
- Py_hash_t PyObject_Hash(PyObject *o);
-
- Compute and return the hash, hash_value, of an object, o. On
- failure, return -1.
-
- This is the equivalent of the Python expression: hash(o). */
-
-
-/* Implemented elsewhere:
-
- int PyObject_IsTrue(PyObject *o);
-
- Returns 1 if the object, o, is considered to be true, 0 if o is
- considered to be false and -1 on failure.
-
- This is equivalent to the Python expression: not not o. */
-
-
-/* Implemented elsewhere:
-
- int PyObject_Not(PyObject *o);
-
- Returns 0 if the object, o, is considered to be true, 1 if o is
- considered to be false and -1 on failure.
-
- This is equivalent to the Python expression: not o. */
-
-
-/* Get the type of an object.
-
- On success, returns a type object corresponding to the object type of object
- 'o'. On failure, returns NULL.
-
- This is equivalent to the Python expression: type(o) */
-PyAPI_FUNC(PyObject *) PyObject_Type(PyObject *o);
-
-
-/* Return the size of object 'o'. If the object 'o' provides both sequence and
- mapping protocols, the sequence size is returned.
-
- On error, -1 is returned.
-
- This is the equivalent to the Python expression: len(o) */
-PyAPI_FUNC(Py_ssize_t) PyObject_Size(PyObject *o);
-
-
-/* For DLL compatibility */
-#undef PyObject_Length
-PyAPI_FUNC(Py_ssize_t) PyObject_Length(PyObject *o);
-#define PyObject_Length PyObject_Size
-
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyObject_HasLen(PyObject *o);
-
-/* Guess the size of object 'o' using len(o) or o.__length_hint__().
- If neither of those return a non-negative value, then return the default
- value. If one of the calls fails, this function returns -1. */
-PyAPI_FUNC(Py_ssize_t) PyObject_LengthHint(PyObject *o, Py_ssize_t);
-#endif
-
-/* Return element of 'o' corresponding to the object 'key'. Return NULL
- on failure.
-
- This is the equivalent of the Python expression: o[key] */
-PyAPI_FUNC(PyObject *) PyObject_GetItem(PyObject *o, PyObject *key);
-
-
-/* Map the object 'key' to the value 'v' into 'o'.
-
- Raise an exception and return -1 on failure; return 0 on success.
-
- This is the equivalent of the Python statement: o[key]=v. */
-PyAPI_FUNC(int) PyObject_SetItem(PyObject *o, PyObject *key, PyObject *v);
-
-/* Remove the mapping for the string 'key' from the object 'o'.
- Returns -1 on failure.
-
- This is equivalent to the Python statement: del o[key]. */
-PyAPI_FUNC(int) PyObject_DelItemString(PyObject *o, const char *key);
-
-/* Delete the mapping for the object 'key' from the object 'o'.
- Returns -1 on failure.
-
- This is the equivalent of the Python statement: del o[key]. */
-PyAPI_FUNC(int) PyObject_DelItem(PyObject *o, PyObject *key);
-
-
-/* === Old Buffer API ============================================ */
-
-/* FIXME: usage of these should all be replaced in Python itself
- but for backwards compatibility we will implement them.
- Their usage without a corresponding "unlock" mechanism
- may create issues (but they would already be there). */
-
-/* Takes an arbitrary object which must support the (character, single segment)
- buffer interface and returns a pointer to a read-only memory location
- useable as character based input for subsequent processing.
-
- Return 0 on success. buffer and buffer_len are only set in case no error
- occurs. Otherwise, -1 is returned and an exception set. */
-PyAPI_FUNC(int) PyObject_AsCharBuffer(PyObject *obj,
- const char **buffer,
- Py_ssize_t *buffer_len)
- Py_DEPRECATED(3.0);
-
-/* Checks whether an arbitrary object supports the (character, single segment)
- buffer interface.
-
- Returns 1 on success, 0 on failure. */
-PyAPI_FUNC(int) PyObject_CheckReadBuffer(PyObject *obj)
- Py_DEPRECATED(3.0);
-
-/* Same as PyObject_AsCharBuffer() except that this API expects (readable,
- single segment) buffer interface and returns a pointer to a read-only memory
- location which can contain arbitrary data.
-
- 0 is returned on success. buffer and buffer_len are only set in case no
- error occurs. Otherwise, -1 is returned and an exception set. */
-PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
- const void **buffer,
- Py_ssize_t *buffer_len)
- Py_DEPRECATED(3.0);
-
-/* Takes an arbitrary object which must support the (writable, single segment)
- buffer interface and returns a pointer to a writable memory location in
- buffer of size 'buffer_len'.
-
- Return 0 on success. buffer and buffer_len are only set in case no error
- occurs. Otherwise, -1 is returned and an exception set. */
-PyAPI_FUNC(int) PyObject_AsWriteBuffer(PyObject *obj,
- void **buffer,
- Py_ssize_t *buffer_len)
- Py_DEPRECATED(3.0);
-
-
-/* === New Buffer API ============================================ */
-
-#ifndef Py_LIMITED_API
-
-/* Return 1 if the getbuffer function is available, otherwise return 0. */
-#define PyObject_CheckBuffer(obj) \
- (((obj)->ob_type->tp_as_buffer != NULL) && \
- ((obj)->ob_type->tp_as_buffer->bf_getbuffer != NULL))
-
-/* This is a C-API version of the getbuffer function call. It checks
- to make sure object has the required function pointer and issues the
- call.
-
- Returns -1 and raises an error on failure and returns 0 on success. */
-PyAPI_FUNC(int) PyObject_GetBuffer(PyObject *obj, Py_buffer *view,
- int flags);
-
-/* Get the memory area pointed to by the indices for the buffer given.
- Note that view->ndim is the assumed size of indices. */
-PyAPI_FUNC(void *) PyBuffer_GetPointer(Py_buffer *view, Py_ssize_t *indices);
-
-/* Return the implied itemsize of the data-format area from a
- struct-style description. */
-PyAPI_FUNC(int) PyBuffer_SizeFromFormat(const char *);
-
-/* Implementation in memoryobject.c */
-PyAPI_FUNC(int) PyBuffer_ToContiguous(void *buf, Py_buffer *view,
- Py_ssize_t len, char order);
-
-PyAPI_FUNC(int) PyBuffer_FromContiguous(Py_buffer *view, void *buf,
- Py_ssize_t len, char order);
-
-/* Copy len bytes of data from the contiguous chunk of memory
- pointed to by buf into the buffer exported by obj. Return
- 0 on success and return -1 and raise a PyBuffer_Error on
- error (i.e. the object does not have a buffer interface or
- it is not working).
-
- If fort is 'F', then if the object is multi-dimensional,
- then the data will be copied into the array in
- Fortran-style (first dimension varies the fastest). If
- fort is 'C', then the data will be copied into the array
- in C-style (last dimension varies the fastest). If fort
- is 'A', then it does not matter and the copy will be made
- in whatever way is more efficient. */
-PyAPI_FUNC(int) PyObject_CopyData(PyObject *dest, PyObject *src);
-
-/* Copy the data from the src buffer to the buffer of destination. */
-PyAPI_FUNC(int) PyBuffer_IsContiguous(const Py_buffer *view, char fort);
-
-/*Fill the strides array with byte-strides of a contiguous
- (Fortran-style if fort is 'F' or C-style otherwise)
- array of the given shape with the given number of bytes
- per element. */
-PyAPI_FUNC(void) PyBuffer_FillContiguousStrides(int ndims,
- Py_ssize_t *shape,
- Py_ssize_t *strides,
- int itemsize,
- char fort);
-
-/* Fills in a buffer-info structure correctly for an exporter
- that can only share a contiguous chunk of memory of
- "unsigned bytes" of the given length.
-
- Returns 0 on success and -1 (with raising an error) on error. */
-PyAPI_FUNC(int) PyBuffer_FillInfo(Py_buffer *view, PyObject *o, void *buf,
- Py_ssize_t len, int readonly,
- int flags);
-
-/* Releases a Py_buffer obtained from getbuffer ParseTuple's "s*". */
-PyAPI_FUNC(void) PyBuffer_Release(Py_buffer *view);
-
-#endif /* Py_LIMITED_API */
-
-/* Takes an arbitrary object and returns the result of calling
- obj.__format__(format_spec). */
-PyAPI_FUNC(PyObject *) PyObject_Format(PyObject *obj,
- PyObject *format_spec);
-
-
-/* ==== Iterators ================================================ */
-
-/* Takes an object and returns an iterator for it.
- This is typically a new iterator but if the argument is an iterator, this
- returns itself. */
-PyAPI_FUNC(PyObject *) PyObject_GetIter(PyObject *);
-
-#define PyIter_Check(obj) \
- ((obj)->ob_type->tp_iternext != NULL && \
- (obj)->ob_type->tp_iternext != &_PyObject_NextNotImplemented)
-
-/* Takes an iterator object and calls its tp_iternext slot,
- returning the next value.
-
- If the iterator is exhausted, this returns NULL without setting an
- exception.
-
- NULL with an exception means an error occurred. */
-PyAPI_FUNC(PyObject *) PyIter_Next(PyObject *);
-
-
-/* === Number Protocol ================================================== */
-
-/* Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise.
-
- This function always succeeds. */
-PyAPI_FUNC(int) PyNumber_Check(PyObject *o);
-
-/* Returns the result of adding o1 and o2, or NULL on failure.
-
- This is the equivalent of the Python expression: o1 + o2. */
-PyAPI_FUNC(PyObject *) PyNumber_Add(PyObject *o1, PyObject *o2);
-
-/* Returns the result of subtracting o2 from o1, or NULL on failure.
-
- This is the equivalent of the Python expression: o1 - o2. */
-PyAPI_FUNC(PyObject *) PyNumber_Subtract(PyObject *o1, PyObject *o2);
-
-/* Returns the result of multiplying o1 and o2, or NULL on failure.
-
- This is the equivalent of the Python expression: o1 * o2. */
-PyAPI_FUNC(PyObject *) PyNumber_Multiply(PyObject *o1, PyObject *o2);
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-/* This is the equivalent of the Python expression: o1 @ o2. */
-PyAPI_FUNC(PyObject *) PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2);
-#endif
-
-/* Returns the result of dividing o1 by o2 giving an integral result,
- or NULL on failure.
-
- This is the equivalent of the Python expression: o1 // o2. */
-PyAPI_FUNC(PyObject *) PyNumber_FloorDivide(PyObject *o1, PyObject *o2);
-
-/* Returns the result of dividing o1 by o2 giving a float result, or NULL on
- failure.
-
- This is the equivalent of the Python expression: o1 / o2. */
-PyAPI_FUNC(PyObject *) PyNumber_TrueDivide(PyObject *o1, PyObject *o2);
-
-/* Returns the remainder of dividing o1 by o2, or NULL on failure.
-
- This is the equivalent of the Python expression: o1 % o2. */
-PyAPI_FUNC(PyObject *) PyNumber_Remainder(PyObject *o1, PyObject *o2);
-
-/* See the built-in function divmod.
-
- Returns NULL on failure.
-
- This is the equivalent of the Python expression: divmod(o1, o2). */
-PyAPI_FUNC(PyObject *) PyNumber_Divmod(PyObject *o1, PyObject *o2);
-
-/* See the built-in function pow. Returns NULL on failure.
-
- This is the equivalent of the Python expression: pow(o1, o2, o3),
- where o3 is optional. */
-PyAPI_FUNC(PyObject *) PyNumber_Power(PyObject *o1, PyObject *o2,
- PyObject *o3);
-
-/* Returns the negation of o on success, or NULL on failure.
-
- This is the equivalent of the Python expression: -o. */
-PyAPI_FUNC(PyObject *) PyNumber_Negative(PyObject *o);
-
-/* Returns the positive of o on success, or NULL on failure.
-
- This is the equivalent of the Python expression: +o. */
-PyAPI_FUNC(PyObject *) PyNumber_Positive(PyObject *o);
-
-/* Returns the absolute value of 'o', or NULL on failure.
-
- This is the equivalent of the Python expression: abs(o). */
-PyAPI_FUNC(PyObject *) PyNumber_Absolute(PyObject *o);
-
-/* Returns the bitwise negation of 'o' on success, or NULL on failure.
-
- This is the equivalent of the Python expression: ~o. */
-PyAPI_FUNC(PyObject *) PyNumber_Invert(PyObject *o);
-
-/* Returns the result of left shifting o1 by o2 on success, or NULL on failure.
-
- This is the equivalent of the Python expression: o1 << o2. */
-PyAPI_FUNC(PyObject *) PyNumber_Lshift(PyObject *o1, PyObject *o2);
-
-/* Returns the result of right shifting o1 by o2 on success, or NULL on
- failure.
-
- This is the equivalent of the Python expression: o1 >> o2. */
-PyAPI_FUNC(PyObject *) PyNumber_Rshift(PyObject *o1, PyObject *o2);
-
-/* Returns the result of bitwise and of o1 and o2 on success, or NULL on
- failure.
-
- This is the equivalent of the Python expression: o1 & o2. */
-PyAPI_FUNC(PyObject *) PyNumber_And(PyObject *o1, PyObject *o2);
-
-/* Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure.
-
- This is the equivalent of the Python expression: o1 ^ o2. */
-PyAPI_FUNC(PyObject *) PyNumber_Xor(PyObject *o1, PyObject *o2);
-
-/* Returns the result of bitwise or on o1 and o2 on success, or NULL on
- failure.
-
- This is the equivalent of the Python expression: o1 | o2. */
-PyAPI_FUNC(PyObject *) PyNumber_Or(PyObject *o1, PyObject *o2);
-
-#define PyIndex_Check(obj) \
- ((obj)->ob_type->tp_as_number != NULL && \
- (obj)->ob_type->tp_as_number->nb_index != NULL)
-
-/* Returns the object 'o' converted to a Python int, or NULL with an exception
- raised on failure. */
-PyAPI_FUNC(PyObject *) PyNumber_Index(PyObject *o);
-
-/* Returns the object 'o' converted to Py_ssize_t by going through
- PyNumber_Index() first.
-
- If an overflow error occurs while converting the int to Py_ssize_t, then the
- second argument 'exc' is the error-type to return. If it is NULL, then the
- overflow error is cleared and the value is clipped. */
-PyAPI_FUNC(Py_ssize_t) PyNumber_AsSsize_t(PyObject *o, PyObject *exc);
-
-/* Returns the object 'o' converted to an integer object on success, or NULL
- on failure.
-
- This is the equivalent of the Python expression: int(o). */
-PyAPI_FUNC(PyObject *) PyNumber_Long(PyObject *o);
-
-/* Returns the object 'o' converted to a float object on success, or NULL
- on failure.
-
- This is the equivalent of the Python expression: float(o). */
-PyAPI_FUNC(PyObject *) PyNumber_Float(PyObject *o);
-
-
-/* --- In-place variants of (some of) the above number protocol functions -- */
-
-/* Returns the result of adding o2 to o1, possibly in-place, or NULL
- on failure.
-
- This is the equivalent of the Python expression: o1 += o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2);
-
-/* Returns the result of subtracting o2 from o1, possibly in-place or
- NULL on failure.
-
- This is the equivalent of the Python expression: o1 -= o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2);
-
-/* Returns the result of multiplying o1 by o2, possibly in-place, or NULL on
- failure.
-
- This is the equivalent of the Python expression: o1 *= o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2);
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-/* This is the equivalent of the Python expression: o1 @= o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2);
-#endif
-
-/* Returns the result of dividing o1 by o2 giving an integral result, possibly
- in-place, or NULL on failure.
-
- This is the equivalent of the Python expression: o1 /= o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceFloorDivide(PyObject *o1,
- PyObject *o2);
-
-/* Returns the result of dividing o1 by o2 giving a float result, possibly
- in-place, or null on failure.
-
- This is the equivalent of the Python expression: o1 /= o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceTrueDivide(PyObject *o1,
- PyObject *o2);
-
-/* Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on
- failure.
-
- This is the equivalent of the Python expression: o1 %= o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2);
-
-/* Returns the result of raising o1 to the power of o2, possibly in-place,
- or NULL on failure.
-
- This is the equivalent of the Python expression: o1 **= o2,
- or o1 = pow(o1, o2, o3) if o3 is present. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlacePower(PyObject *o1, PyObject *o2,
- PyObject *o3);
-
-/* Returns the result of left shifting o1 by o2, possibly in-place, or NULL
- on failure.
-
- This is the equivalent of the Python expression: o1 <<= o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceLshift(PyObject *o1, PyObject *o2);
-
-/* Returns the result of right shifting o1 by o2, possibly in-place or NULL
- on failure.
-
- This is the equivalent of the Python expression: o1 >>= o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2);
-
-/* Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL
- on failure.
-
- This is the equivalent of the Python expression: o1 &= o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2);
-
-/* Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL
- on failure.
-
- This is the equivalent of the Python expression: o1 ^= o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceXor(PyObject *o1, PyObject *o2);
-
-/* Returns the result of bitwise or of o1 and o2, possibly in-place,
- or NULL on failure.
-
- This is the equivalent of the Python expression: o1 |= o2. */
-PyAPI_FUNC(PyObject *) PyNumber_InPlaceOr(PyObject *o1, PyObject *o2);
-
-/* Returns the integer n converted to a string with a base, with a base
- marker of 0b, 0o or 0x prefixed if applicable.
-
- If n is not an int object, it is converted with PyNumber_Index first. */
-PyAPI_FUNC(PyObject *) PyNumber_ToBase(PyObject *n, int base);
-
-
-/* === Sequence protocol ================================================ */
-
-/* Return 1 if the object provides sequence protocol, and zero
- otherwise.
-
- This function always succeeds. */
-PyAPI_FUNC(int) PySequence_Check(PyObject *o);
-
-/* Return the size of sequence object o, or -1 on failure. */
-PyAPI_FUNC(Py_ssize_t) PySequence_Size(PyObject *o);
-
-/* For DLL compatibility */
-#undef PySequence_Length
-PyAPI_FUNC(Py_ssize_t) PySequence_Length(PyObject *o);
-#define PySequence_Length PySequence_Size
-
-
-/* Return the concatenation of o1 and o2 on success, and NULL on failure.
-
- This is the equivalent of the Python expression: o1 + o2. */
-PyAPI_FUNC(PyObject *) PySequence_Concat(PyObject *o1, PyObject *o2);
-
-/* Return the result of repeating sequence object 'o' 'count' times,
- or NULL on failure.
-
- This is the equivalent of the Python expression: o * count. */
-PyAPI_FUNC(PyObject *) PySequence_Repeat(PyObject *o, Py_ssize_t count);
-
-/* Return the ith element of o, or NULL on failure.
-
- This is the equivalent of the Python expression: o[i]. */
-PyAPI_FUNC(PyObject *) PySequence_GetItem(PyObject *o, Py_ssize_t i);
-
-/* Return the slice of sequence object o between i1 and i2, or NULL on failure.
-
- This is the equivalent of the Python expression: o[i1:i2]. */
-PyAPI_FUNC(PyObject *) PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2);
-
-/* Assign object 'v' to the ith element of the sequence 'o'. Raise an exception
- and return -1 on failure; return 0 on success.
-
- This is the equivalent of the Python statement o[i] = v. */
-PyAPI_FUNC(int) PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v);
-
-/* Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure.
-
- This is the equivalent of the Python statement: del o[i]. */
-PyAPI_FUNC(int) PySequence_DelItem(PyObject *o, Py_ssize_t i);
-
-/* Assign the sequence object 'v' to the slice in sequence object 'o',
- from 'i1' to 'i2'. Returns -1 on failure.
-
- This is the equivalent of the Python statement: o[i1:i2] = v. */
-PyAPI_FUNC(int) PySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2,
- PyObject *v);
-
-/* Delete the slice in sequence object 'o' from 'i1' to 'i2'.
- Returns -1 on failure.
-
- This is the equivalent of the Python statement: del o[i1:i2]. */
-PyAPI_FUNC(int) PySequence_DelSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2);
-
-/* Returns the sequence 'o' as a tuple on success, and NULL on failure.
-
- This is equivalent to the Python expression: tuple(o). */
-PyAPI_FUNC(PyObject *) PySequence_Tuple(PyObject *o);
-
-/* Returns the sequence 'o' as a list on success, and NULL on failure.
- This is equivalent to the Python expression: list(o) */
-PyAPI_FUNC(PyObject *) PySequence_List(PyObject *o);
-
-/* Return the sequence 'o' as a list, unless it's already a tuple or list.
-
- Use PySequence_Fast_GET_ITEM to access the members of this list, and
- PySequence_Fast_GET_SIZE to get its length.
-
- Returns NULL on failure. If the object does not support iteration, raises a
- TypeError exception with 'm' as the message text. */
-PyAPI_FUNC(PyObject *) PySequence_Fast(PyObject *o, const char* m);
-
-/* Return the size of the sequence 'o', assuming that 'o' was returned by
- PySequence_Fast and is not NULL. */
-#define PySequence_Fast_GET_SIZE(o) \
- (PyList_Check(o) ? PyList_GET_SIZE(o) : PyTuple_GET_SIZE(o))
-
-/* Return the 'i'-th element of the sequence 'o', assuming that o was returned
- by PySequence_Fast, and that i is within bounds. */
-#define PySequence_Fast_GET_ITEM(o, i)\
- (PyList_Check(o) ? PyList_GET_ITEM(o, i) : PyTuple_GET_ITEM(o, i))
-
-/* Assume tp_as_sequence and sq_item exist and that 'i' does not
- need to be corrected for a negative index. */
-#define PySequence_ITEM(o, i)\
- ( Py_TYPE(o)->tp_as_sequence->sq_item(o, i) )
-
-/* Return a pointer to the underlying item array for
- an object retured by PySequence_Fast */
-#define PySequence_Fast_ITEMS(sf) \
- (PyList_Check(sf) ? ((PyListObject *)(sf))->ob_item \
- : ((PyTupleObject *)(sf))->ob_item)
-
-/* Return the number of occurrences on value on 'o', that is, return
- the number of keys for which o[key] == value.
-
- On failure, return -1. This is equivalent to the Python expression:
- o.count(value). */
-PyAPI_FUNC(Py_ssize_t) PySequence_Count(PyObject *o, PyObject *value);
-
-/* Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence
- 'seq'; -1 on error.
-
- Use __contains__ if possible, else _PySequence_IterSearch(). */
-PyAPI_FUNC(int) PySequence_Contains(PyObject *seq, PyObject *ob);
-
-#ifndef Py_LIMITED_API
-#define PY_ITERSEARCH_COUNT 1
-#define PY_ITERSEARCH_INDEX 2
-#define PY_ITERSEARCH_CONTAINS 3
-
-/* Iterate over seq.
-
- Result depends on the operation:
-
- PY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if
- error.
- PY_ITERSEARCH_INDEX: return 0-based index of first occurrence of
- obj in seq; set ValueError and return -1 if none found;
- also return -1 on error.
- PY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on
- error. */
-PyAPI_FUNC(Py_ssize_t) _PySequence_IterSearch(PyObject *seq,
- PyObject *obj, int operation);
-#endif
-
-
-/* For DLL-level backwards compatibility */
-#undef PySequence_In
-/* Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal
- to 'value', return 1, otherwise return 0. On error, return -1.
-
- This is equivalent to the Python expression: value in o. */
-PyAPI_FUNC(int) PySequence_In(PyObject *o, PyObject *value);
-
-/* For source-level backwards compatibility */
-#define PySequence_In PySequence_Contains
-
-
-/* Return the first index for which o[i] == value.
- On error, return -1.
-
- This is equivalent to the Python expression: o.index(value). */
-PyAPI_FUNC(Py_ssize_t) PySequence_Index(PyObject *o, PyObject *value);
-
-
-/* --- In-place versions of some of the above Sequence functions --- */
-
-/* Append sequence 'o2' to sequence 'o1', in-place when possible. Return the
- resulting object, which could be 'o1', or NULL on failure.
-
- This is the equivalent of the Python expression: o1 += o2. */
-PyAPI_FUNC(PyObject *) PySequence_InPlaceConcat(PyObject *o1, PyObject *o2);
-
-/* Repeat sequence 'o' by 'count', in-place when possible. Return the resulting
- object, which could be 'o', or NULL on failure.
-
- This is the equivalent of the Python expression: o1 *= count. */
-PyAPI_FUNC(PyObject *) PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count);
-
-
-/* === Mapping protocol ================================================= */
-
-/* Return 1 if the object provides mapping protocol, and 0 otherwise.
-
- This function always succeeds. */
-PyAPI_FUNC(int) PyMapping_Check(PyObject *o);
-
-/* Returns the number of keys in mapping object 'o' on success, and -1 on
- failure. This is equivalent to the Python expression: len(o). */
-PyAPI_FUNC(Py_ssize_t) PyMapping_Size(PyObject *o);
-
-/* For DLL compatibility */
-#undef PyMapping_Length
-PyAPI_FUNC(Py_ssize_t) PyMapping_Length(PyObject *o);
-#define PyMapping_Length PyMapping_Size
-
-
-/* Implemented as a macro:
-
- int PyMapping_DelItemString(PyObject *o, const char *key);
-
- Remove the mapping for the string 'key' from the mapping 'o'. Returns -1 on
- failure.
-
- This is equivalent to the Python statement: del o[key]. */
-#define PyMapping_DelItemString(O,K) PyObject_DelItemString((O),(K))
-
-/* Implemented as a macro:
-
- int PyMapping_DelItem(PyObject *o, PyObject *key);
-
- Remove the mapping for the object 'key' from the mapping object 'o'.
- Returns -1 on failure.
-
- This is equivalent to the Python statement: del o[key]. */
-#define PyMapping_DelItem(O,K) PyObject_DelItem((O),(K))
-
-/* On success, return 1 if the mapping object 'o' has the key 'key',
- and 0 otherwise.
-
- This is equivalent to the Python expression: key in o.
-
- This function always succeeds. */
-PyAPI_FUNC(int) PyMapping_HasKeyString(PyObject *o, const char *key);
-
-/* Return 1 if the mapping object has the key 'key', and 0 otherwise.
-
- This is equivalent to the Python expression: key in o.
-
- This function always succeeds. */
-PyAPI_FUNC(int) PyMapping_HasKey(PyObject *o, PyObject *key);
-
-/* On success, return a list or tuple of the keys in mapping object 'o'.
- On failure, return NULL. */
-PyAPI_FUNC(PyObject *) PyMapping_Keys(PyObject *o);
-
-/* On success, return a list or tuple of the values in mapping object 'o'.
- On failure, return NULL. */
-PyAPI_FUNC(PyObject *) PyMapping_Values(PyObject *o);
-
-/* On success, return a list or tuple of the items in mapping object 'o',
- where each item is a tuple containing a key-value pair. On failure, return
- NULL. */
-PyAPI_FUNC(PyObject *) PyMapping_Items(PyObject *o);
-
-/* Return element of 'o' corresponding to the string 'key' or NULL on failure.
-
- This is the equivalent of the Python expression: o[key]. */
-PyAPI_FUNC(PyObject *) PyMapping_GetItemString(PyObject *o,
- const char *key);
-
-/* Map the string 'key' to the value 'v' in the mapping 'o'.
- Returns -1 on failure.
-
- This is the equivalent of the Python statement: o[key]=v. */
-PyAPI_FUNC(int) PyMapping_SetItemString(PyObject *o, const char *key,
- PyObject *value);
-
-/* isinstance(object, typeorclass) */
-PyAPI_FUNC(int) PyObject_IsInstance(PyObject *object, PyObject *typeorclass);
-
-/* issubclass(object, typeorclass) */
-PyAPI_FUNC(int) PyObject_IsSubclass(PyObject *object, PyObject *typeorclass);
-
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyObject_RealIsInstance(PyObject *inst, PyObject *cls);
-
-PyAPI_FUNC(int) _PyObject_RealIsSubclass(PyObject *derived, PyObject *cls);
-
-PyAPI_FUNC(char *const *) _PySequence_BytesToCharpArray(PyObject* self);
-
-PyAPI_FUNC(void) _Py_FreeCharPArray(char *const array[]);
-
-/* For internal use by buffer API functions */
-PyAPI_FUNC(void) _Py_add_one_to_index_F(int nd, Py_ssize_t *index,
- const Py_ssize_t *shape);
-PyAPI_FUNC(void) _Py_add_one_to_index_C(int nd, Py_ssize_t *index,
- const Py_ssize_t *shape);
-
-/* Convert Python int to Py_ssize_t. Do nothing if the argument is None. */
-PyAPI_FUNC(int) _Py_convert_optional_to_ssize_t(PyObject *, void *);
-#endif /* !Py_LIMITED_API */
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* Py_ABSTRACTOBJECT_H */
diff --git a/EasyTrans/Include/accu.h b/EasyTrans/Include/accu.h
deleted file mode 100644
index 3636ea6c..00000000
--- a/EasyTrans/Include/accu.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef Py_LIMITED_API
-#ifndef Py_ACCU_H
-#define Py_ACCU_H
-
-/*** This is a private API for use by the interpreter and the stdlib.
- *** Its definition may be changed or removed at any moment.
- ***/
-
-/*
- * A two-level accumulator of unicode objects that avoids both the overhead
- * of keeping a huge number of small separate objects, and the quadratic
- * behaviour of using a naive repeated concatenation scheme.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#undef small /* defined by some Windows headers */
-
-typedef struct {
- PyObject *large; /* A list of previously accumulated large strings */
- PyObject *small; /* Pending small strings */
-} _PyAccu;
-
-PyAPI_FUNC(int) _PyAccu_Init(_PyAccu *acc);
-PyAPI_FUNC(int) _PyAccu_Accumulate(_PyAccu *acc, PyObject *unicode);
-PyAPI_FUNC(PyObject *) _PyAccu_FinishAsList(_PyAccu *acc);
-PyAPI_FUNC(PyObject *) _PyAccu_Finish(_PyAccu *acc);
-PyAPI_FUNC(void) _PyAccu_Destroy(_PyAccu *acc);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* Py_ACCU_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/asdl.h b/EasyTrans/Include/asdl.h
deleted file mode 100644
index 35e9fa18..00000000
--- a/EasyTrans/Include/asdl.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef Py_ASDL_H
-#define Py_ASDL_H
-
-typedef PyObject * identifier;
-typedef PyObject * string;
-typedef PyObject * bytes;
-typedef PyObject * object;
-typedef PyObject * singleton;
-typedef PyObject * constant;
-
-/* It would be nice if the code generated by asdl_c.py was completely
- independent of Python, but it is a goal the requires too much work
- at this stage. So, for example, I'll represent identifiers as
- interned Python strings.
-*/
-
-/* XXX A sequence should be typed so that its use can be typechecked. */
-
-typedef struct {
- Py_ssize_t size;
- void *elements[1];
-} asdl_seq;
-
-typedef struct {
- Py_ssize_t size;
- int elements[1];
-} asdl_int_seq;
-
-asdl_seq *_Py_asdl_seq_new(Py_ssize_t size, PyArena *arena);
-asdl_int_seq *_Py_asdl_int_seq_new(Py_ssize_t size, PyArena *arena);
-
-#define asdl_seq_GET(S, I) (S)->elements[(I)]
-#define asdl_seq_LEN(S) ((S) == NULL ? 0 : (S)->size)
-#ifdef Py_DEBUG
-#define asdl_seq_SET(S, I, V) \
- do { \
- Py_ssize_t _asdl_i = (I); \
- assert((S) != NULL); \
- assert(_asdl_i < (S)->size); \
- (S)->elements[_asdl_i] = (V); \
- } while (0)
-#else
-#define asdl_seq_SET(S, I, V) (S)->elements[I] = (V)
-#endif
-
-#endif /* !Py_ASDL_H */
diff --git a/EasyTrans/Include/ast.h b/EasyTrans/Include/ast.h
deleted file mode 100644
index 5bc2b05b..00000000
--- a/EasyTrans/Include/ast.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef Py_AST_H
-#define Py_AST_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(int) PyAST_Validate(mod_ty);
-PyAPI_FUNC(mod_ty) PyAST_FromNode(
- const node *n,
- PyCompilerFlags *flags,
- const char *filename, /* decoded from the filesystem encoding */
- PyArena *arena);
-PyAPI_FUNC(mod_ty) PyAST_FromNodeObject(
- const node *n,
- PyCompilerFlags *flags,
- PyObject *filename,
- PyArena *arena);
-
-#ifndef Py_LIMITED_API
-
-/* _PyAST_ExprAsUnicode is defined in ast_unparse.c */
-PyAPI_FUNC(PyObject *) _PyAST_ExprAsUnicode(expr_ty);
-
-#endif /* !Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_AST_H */
diff --git a/EasyTrans/Include/bitset.h b/EasyTrans/Include/bitset.h
deleted file mode 100644
index b22fa778..00000000
--- a/EasyTrans/Include/bitset.h
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef Py_BITSET_H
-#define Py_BITSET_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Bitset interface */
-
-#define BYTE char
-
-typedef BYTE *bitset;
-
-bitset newbitset(int nbits);
-void delbitset(bitset bs);
-#define testbit(ss, ibit) (((ss)[BIT2BYTE(ibit)] & BIT2MASK(ibit)) != 0)
-int addbit(bitset bs, int ibit); /* Returns 0 if already set */
-int samebitset(bitset bs1, bitset bs2, int nbits);
-void mergebitset(bitset bs1, bitset bs2, int nbits);
-
-#define BITSPERBYTE (8*sizeof(BYTE))
-#define NBYTES(nbits) (((nbits) + BITSPERBYTE - 1) / BITSPERBYTE)
-
-#define BIT2BYTE(ibit) ((ibit) / BITSPERBYTE)
-#define BIT2SHIFT(ibit) ((ibit) % BITSPERBYTE)
-#define BIT2MASK(ibit) (1 << BIT2SHIFT(ibit))
-#define BYTE2BIT(ibyte) ((ibyte) * BITSPERBYTE)
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_BITSET_H */
diff --git a/EasyTrans/Include/bltinmodule.h b/EasyTrans/Include/bltinmodule.h
deleted file mode 100644
index 868c9e64..00000000
--- a/EasyTrans/Include/bltinmodule.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef Py_BLTINMODULE_H
-#define Py_BLTINMODULE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_DATA(PyTypeObject) PyFilter_Type;
-PyAPI_DATA(PyTypeObject) PyMap_Type;
-PyAPI_DATA(PyTypeObject) PyZip_Type;
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_BLTINMODULE_H */
diff --git a/EasyTrans/Include/boolobject.h b/EasyTrans/Include/boolobject.h
deleted file mode 100644
index 7cc2f1fe..00000000
--- a/EasyTrans/Include/boolobject.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Boolean object interface */
-
-#ifndef Py_BOOLOBJECT_H
-#define Py_BOOLOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-PyAPI_DATA(PyTypeObject) PyBool_Type;
-
-#define PyBool_Check(x) (Py_TYPE(x) == &PyBool_Type)
-
-/* Py_False and Py_True are the only two bools in existence.
-Don't forget to apply Py_INCREF() when returning either!!! */
-
-/* Don't use these directly */
-PyAPI_DATA(struct _longobject) _Py_FalseStruct, _Py_TrueStruct;
-
-/* Use these macros */
-#define Py_False ((PyObject *) &_Py_FalseStruct)
-#define Py_True ((PyObject *) &_Py_TrueStruct)
-
-/* Macros for returning Py_True or Py_False, respectively */
-#define Py_RETURN_TRUE return Py_INCREF(Py_True), Py_True
-#define Py_RETURN_FALSE return Py_INCREF(Py_False), Py_False
-
-/* Function to return a bool from a C long */
-PyAPI_FUNC(PyObject *) PyBool_FromLong(long);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_BOOLOBJECT_H */
diff --git a/EasyTrans/Include/bytearrayobject.h b/EasyTrans/Include/bytearrayobject.h
deleted file mode 100644
index a757b880..00000000
--- a/EasyTrans/Include/bytearrayobject.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* ByteArray object interface */
-
-#ifndef Py_BYTEARRAYOBJECT_H
-#define Py_BYTEARRAYOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include
-
-/* Type PyByteArrayObject represents a mutable array of bytes.
- * The Python API is that of a sequence;
- * the bytes are mapped to ints in [0, 256).
- * Bytes are not characters; they may be used to encode characters.
- * The only way to go between bytes and str/unicode is via encoding
- * and decoding.
- * For the convenience of C programmers, the bytes type is considered
- * to contain a char pointer, not an unsigned char pointer.
- */
-
-/* Object layout */
-#ifndef Py_LIMITED_API
-typedef struct {
- PyObject_VAR_HEAD
- Py_ssize_t ob_alloc; /* How many bytes allocated in ob_bytes */
- char *ob_bytes; /* Physical backing buffer */
- char *ob_start; /* Logical start inside ob_bytes */
- /* XXX(nnorwitz): should ob_exports be Py_ssize_t? */
- int ob_exports; /* How many buffer exports */
-} PyByteArrayObject;
-#endif
-
-/* Type object */
-PyAPI_DATA(PyTypeObject) PyByteArray_Type;
-PyAPI_DATA(PyTypeObject) PyByteArrayIter_Type;
-
-/* Type check macros */
-#define PyByteArray_Check(self) PyObject_TypeCheck(self, &PyByteArray_Type)
-#define PyByteArray_CheckExact(self) (Py_TYPE(self) == &PyByteArray_Type)
-
-/* Direct API functions */
-PyAPI_FUNC(PyObject *) PyByteArray_FromObject(PyObject *);
-PyAPI_FUNC(PyObject *) PyByteArray_Concat(PyObject *, PyObject *);
-PyAPI_FUNC(PyObject *) PyByteArray_FromStringAndSize(const char *, Py_ssize_t);
-PyAPI_FUNC(Py_ssize_t) PyByteArray_Size(PyObject *);
-PyAPI_FUNC(char *) PyByteArray_AsString(PyObject *);
-PyAPI_FUNC(int) PyByteArray_Resize(PyObject *, Py_ssize_t);
-
-/* Macros, trading safety for speed */
-#ifndef Py_LIMITED_API
-#define PyByteArray_AS_STRING(self) \
- (assert(PyByteArray_Check(self)), \
- Py_SIZE(self) ? ((PyByteArrayObject *)(self))->ob_start : _PyByteArray_empty_string)
-#define PyByteArray_GET_SIZE(self) (assert(PyByteArray_Check(self)), Py_SIZE(self))
-
-PyAPI_DATA(char) _PyByteArray_empty_string[];
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_BYTEARRAYOBJECT_H */
diff --git a/EasyTrans/Include/bytes_methods.h b/EasyTrans/Include/bytes_methods.h
deleted file mode 100644
index 8434a50a..00000000
--- a/EasyTrans/Include/bytes_methods.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef Py_LIMITED_API
-#ifndef Py_BYTES_CTYPE_H
-#define Py_BYTES_CTYPE_H
-
-/*
- * The internal implementation behind PyBytes (bytes) and PyByteArray (bytearray)
- * methods of the given names, they operate on ASCII byte strings.
- */
-extern PyObject* _Py_bytes_isspace(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_isalpha(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_isalnum(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_isascii(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_isdigit(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_islower(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_isupper(const char *cptr, Py_ssize_t len);
-extern PyObject* _Py_bytes_istitle(const char *cptr, Py_ssize_t len);
-
-/* These store their len sized answer in the given preallocated *result arg. */
-extern void _Py_bytes_lower(char *result, const char *cptr, Py_ssize_t len);
-extern void _Py_bytes_upper(char *result, const char *cptr, Py_ssize_t len);
-extern void _Py_bytes_title(char *result, const char *s, Py_ssize_t len);
-extern void _Py_bytes_capitalize(char *result, const char *s, Py_ssize_t len);
-extern void _Py_bytes_swapcase(char *result, const char *s, Py_ssize_t len);
-
-extern PyObject *_Py_bytes_find(const char *str, Py_ssize_t len, PyObject *args);
-extern PyObject *_Py_bytes_index(const char *str, Py_ssize_t len, PyObject *args);
-extern PyObject *_Py_bytes_rfind(const char *str, Py_ssize_t len, PyObject *args);
-extern PyObject *_Py_bytes_rindex(const char *str, Py_ssize_t len, PyObject *args);
-extern PyObject *_Py_bytes_count(const char *str, Py_ssize_t len, PyObject *args);
-extern int _Py_bytes_contains(const char *str, Py_ssize_t len, PyObject *arg);
-extern PyObject *_Py_bytes_startswith(const char *str, Py_ssize_t len, PyObject *args);
-extern PyObject *_Py_bytes_endswith(const char *str, Py_ssize_t len, PyObject *args);
-
-/* The maketrans() static method. */
-extern PyObject* _Py_bytes_maketrans(Py_buffer *frm, Py_buffer *to);
-
-/* Shared __doc__ strings. */
-extern const char _Py_isspace__doc__[];
-extern const char _Py_isalpha__doc__[];
-extern const char _Py_isalnum__doc__[];
-extern const char _Py_isascii__doc__[];
-extern const char _Py_isdigit__doc__[];
-extern const char _Py_islower__doc__[];
-extern const char _Py_isupper__doc__[];
-extern const char _Py_istitle__doc__[];
-extern const char _Py_lower__doc__[];
-extern const char _Py_upper__doc__[];
-extern const char _Py_title__doc__[];
-extern const char _Py_capitalize__doc__[];
-extern const char _Py_swapcase__doc__[];
-extern const char _Py_count__doc__[];
-extern const char _Py_find__doc__[];
-extern const char _Py_index__doc__[];
-extern const char _Py_rfind__doc__[];
-extern const char _Py_rindex__doc__[];
-extern const char _Py_startswith__doc__[];
-extern const char _Py_endswith__doc__[];
-extern const char _Py_maketrans__doc__[];
-extern const char _Py_expandtabs__doc__[];
-extern const char _Py_ljust__doc__[];
-extern const char _Py_rjust__doc__[];
-extern const char _Py_center__doc__[];
-extern const char _Py_zfill__doc__[];
-
-/* this is needed because some docs are shared from the .o, not static */
-#define PyDoc_STRVAR_shared(name,str) const char name[] = PyDoc_STR(str)
-
-#endif /* !Py_BYTES_CTYPE_H */
-#endif /* !Py_LIMITED_API */
diff --git a/EasyTrans/Include/bytesobject.h b/EasyTrans/Include/bytesobject.h
deleted file mode 100644
index 3fde4a22..00000000
--- a/EasyTrans/Include/bytesobject.h
+++ /dev/null
@@ -1,224 +0,0 @@
-
-/* Bytes (String) object interface */
-
-#ifndef Py_BYTESOBJECT_H
-#define Py_BYTESOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include
-
-/*
-Type PyBytesObject represents a character string. An extra zero byte is
-reserved at the end to ensure it is zero-terminated, but a size is
-present so strings with null bytes in them can be represented. This
-is an immutable object type.
-
-There are functions to create new string objects, to test
-an object for string-ness, and to get the
-string value. The latter function returns a null pointer
-if the object is not of the proper type.
-There is a variant that takes an explicit size as well as a
-variant that assumes a zero-terminated string. Note that none of the
-functions should be applied to nil objects.
-*/
-
-/* Caching the hash (ob_shash) saves recalculation of a string's hash value.
- This significantly speeds up dict lookups. */
-
-#ifndef Py_LIMITED_API
-typedef struct {
- PyObject_VAR_HEAD
- Py_hash_t ob_shash;
- char ob_sval[1];
-
- /* Invariants:
- * ob_sval contains space for 'ob_size+1' elements.
- * ob_sval[ob_size] == 0.
- * ob_shash is the hash of the string or -1 if not computed yet.
- */
-} PyBytesObject;
-#endif
-
-PyAPI_DATA(PyTypeObject) PyBytes_Type;
-PyAPI_DATA(PyTypeObject) PyBytesIter_Type;
-
-#define PyBytes_Check(op) \
- PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_BYTES_SUBCLASS)
-#define PyBytes_CheckExact(op) (Py_TYPE(op) == &PyBytes_Type)
-
-PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t);
-PyAPI_FUNC(PyObject *) PyBytes_FromString(const char *);
-PyAPI_FUNC(PyObject *) PyBytes_FromObject(PyObject *);
-PyAPI_FUNC(PyObject *) PyBytes_FromFormatV(const char*, va_list)
- Py_GCC_ATTRIBUTE((format(printf, 1, 0)));
-PyAPI_FUNC(PyObject *) PyBytes_FromFormat(const char*, ...)
- Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
-PyAPI_FUNC(Py_ssize_t) PyBytes_Size(PyObject *);
-PyAPI_FUNC(char *) PyBytes_AsString(PyObject *);
-PyAPI_FUNC(PyObject *) PyBytes_Repr(PyObject *, int);
-PyAPI_FUNC(void) PyBytes_Concat(PyObject **, PyObject *);
-PyAPI_FUNC(void) PyBytes_ConcatAndDel(PyObject **, PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyBytes_Resize(PyObject **, Py_ssize_t);
-PyAPI_FUNC(PyObject*) _PyBytes_FormatEx(
- const char *format,
- Py_ssize_t format_len,
- PyObject *args,
- int use_bytearray);
-PyAPI_FUNC(PyObject*) _PyBytes_FromHex(
- PyObject *string,
- int use_bytearray);
-#endif
-PyAPI_FUNC(PyObject *) PyBytes_DecodeEscape(const char *, Py_ssize_t,
- const char *, Py_ssize_t,
- const char *);
-#ifndef Py_LIMITED_API
-/* Helper for PyBytes_DecodeEscape that detects invalid escape chars. */
-PyAPI_FUNC(PyObject *) _PyBytes_DecodeEscape(const char *, Py_ssize_t,
- const char *, Py_ssize_t,
- const char *,
- const char **);
-#endif
-
-/* Macro, trading safety for speed */
-#ifndef Py_LIMITED_API
-#define PyBytes_AS_STRING(op) (assert(PyBytes_Check(op)), \
- (((PyBytesObject *)(op))->ob_sval))
-#define PyBytes_GET_SIZE(op) (assert(PyBytes_Check(op)),Py_SIZE(op))
-#endif
-
-/* _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,
- x must be an iterable object. */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyBytes_Join(PyObject *sep, PyObject *x);
-#endif
-
-/* Provides access to the internal data buffer and size of a string
- object or the default encoded version of a Unicode object. Passing
- NULL as *len parameter will force the string buffer to be
- 0-terminated (passing a string with embedded NULL characters will
- cause an exception). */
-PyAPI_FUNC(int) PyBytes_AsStringAndSize(
- PyObject *obj, /* string or Unicode object */
- char **s, /* pointer to buffer variable */
- Py_ssize_t *len /* pointer to length variable or NULL
- (only possible for 0-terminated
- strings) */
- );
-
-/* Using the current locale, insert the thousands grouping
- into the string pointed to by buffer. For the argument descriptions,
- see Objects/stringlib/localeutil.h */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(Py_ssize_t) _PyBytes_InsertThousandsGroupingLocale(char *buffer,
- Py_ssize_t n_buffer,
- char *digits,
- Py_ssize_t n_digits,
- Py_ssize_t min_width);
-
-/* Using explicit passed-in values, insert the thousands grouping
- into the string pointed to by buffer. For the argument descriptions,
- see Objects/stringlib/localeutil.h */
-PyAPI_FUNC(Py_ssize_t) _PyBytes_InsertThousandsGrouping(char *buffer,
- Py_ssize_t n_buffer,
- char *digits,
- Py_ssize_t n_digits,
- Py_ssize_t min_width,
- const char *grouping,
- const char *thousands_sep);
-#endif
-
-/* Flags used by string formatting */
-#define F_LJUST (1<<0)
-#define F_SIGN (1<<1)
-#define F_BLANK (1<<2)
-#define F_ALT (1<<3)
-#define F_ZERO (1<<4)
-
-#ifndef Py_LIMITED_API
-/* The _PyBytesWriter structure is big: it contains an embedded "stack buffer".
- A _PyBytesWriter variable must be declared at the end of variables in a
- function to optimize the memory allocation on the stack. */
-typedef struct {
- /* bytes, bytearray or NULL (when the small buffer is used) */
- PyObject *buffer;
-
- /* Number of allocated size. */
- Py_ssize_t allocated;
-
- /* Minimum number of allocated bytes,
- incremented by _PyBytesWriter_Prepare() */
- Py_ssize_t min_size;
-
- /* If non-zero, use a bytearray instead of a bytes object for buffer. */
- int use_bytearray;
-
- /* If non-zero, overallocate the buffer (default: 0).
- This flag must be zero if use_bytearray is non-zero. */
- int overallocate;
-
- /* Stack buffer */
- int use_small_buffer;
- char small_buffer[512];
-} _PyBytesWriter;
-
-/* Initialize a bytes writer
-
- By default, the overallocation is disabled. Set the overallocate attribute
- to control the allocation of the buffer. */
-PyAPI_FUNC(void) _PyBytesWriter_Init(_PyBytesWriter *writer);
-
-/* Get the buffer content and reset the writer.
- Return a bytes object, or a bytearray object if use_bytearray is non-zero.
- Raise an exception and return NULL on error. */
-PyAPI_FUNC(PyObject *) _PyBytesWriter_Finish(_PyBytesWriter *writer,
- void *str);
-
-/* Deallocate memory of a writer (clear its internal buffer). */
-PyAPI_FUNC(void) _PyBytesWriter_Dealloc(_PyBytesWriter *writer);
-
-/* Allocate the buffer to write size bytes.
- Return the pointer to the beginning of buffer data.
- Raise an exception and return NULL on error. */
-PyAPI_FUNC(void*) _PyBytesWriter_Alloc(_PyBytesWriter *writer,
- Py_ssize_t size);
-
-/* Ensure that the buffer is large enough to write *size* bytes.
- Add size to the writer minimum size (min_size attribute).
-
- str is the current pointer inside the buffer.
- Return the updated current pointer inside the buffer.
- Raise an exception and return NULL on error. */
-PyAPI_FUNC(void*) _PyBytesWriter_Prepare(_PyBytesWriter *writer,
- void *str,
- Py_ssize_t size);
-
-/* Resize the buffer to make it larger.
- The new buffer may be larger than size bytes because of overallocation.
- Return the updated current pointer inside the buffer.
- Raise an exception and return NULL on error.
-
- Note: size must be greater than the number of allocated bytes in the writer.
-
- This function doesn't use the writer minimum size (min_size attribute).
-
- See also _PyBytesWriter_Prepare().
- */
-PyAPI_FUNC(void*) _PyBytesWriter_Resize(_PyBytesWriter *writer,
- void *str,
- Py_ssize_t size);
-
-/* Write bytes.
- Raise an exception and return NULL on error. */
-PyAPI_FUNC(void*) _PyBytesWriter_WriteBytes(_PyBytesWriter *writer,
- void *str,
- const void *bytes,
- Py_ssize_t size);
-#endif /* Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_BYTESOBJECT_H */
diff --git a/EasyTrans/Include/cellobject.h b/EasyTrans/Include/cellobject.h
deleted file mode 100644
index 2f9b5b75..00000000
--- a/EasyTrans/Include/cellobject.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Cell object interface */
-#ifndef Py_LIMITED_API
-#ifndef Py_CELLOBJECT_H
-#define Py_CELLOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct {
- PyObject_HEAD
- PyObject *ob_ref; /* Content of the cell or NULL when empty */
-} PyCellObject;
-
-PyAPI_DATA(PyTypeObject) PyCell_Type;
-
-#define PyCell_Check(op) (Py_TYPE(op) == &PyCell_Type)
-
-PyAPI_FUNC(PyObject *) PyCell_New(PyObject *);
-PyAPI_FUNC(PyObject *) PyCell_Get(PyObject *);
-PyAPI_FUNC(int) PyCell_Set(PyObject *, PyObject *);
-
-#define PyCell_GET(op) (((PyCellObject *)(op))->ob_ref)
-#define PyCell_SET(op, v) (((PyCellObject *)(op))->ob_ref = v)
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_TUPLEOBJECT_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/ceval.h b/EasyTrans/Include/ceval.h
deleted file mode 100644
index 11283c0a..00000000
--- a/EasyTrans/Include/ceval.h
+++ /dev/null
@@ -1,239 +0,0 @@
-#ifndef Py_CEVAL_H
-#define Py_CEVAL_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Interface to random parts in ceval.c */
-
-/* PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction
- * and PyEval_CallMethod are kept for backward compatibility: PyObject_Call(),
- * PyObject_CallFunction() and PyObject_CallMethod() are recommended to call
- * a callable object.
- */
-
-PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords(
- PyObject *callable,
- PyObject *args,
- PyObject *kwargs);
-
-/* Inline this */
-#define PyEval_CallObject(callable, arg) \
- PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL)
-
-PyAPI_FUNC(PyObject *) PyEval_CallFunction(PyObject *callable,
- const char *format, ...);
-PyAPI_FUNC(PyObject *) PyEval_CallMethod(PyObject *obj,
- const char *name,
- const char *format, ...);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *);
-PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *);
-PyAPI_FUNC(void) _PyEval_SetCoroutineOriginTrackingDepth(int new_depth);
-PyAPI_FUNC(int) _PyEval_GetCoroutineOriginTrackingDepth(void);
-PyAPI_FUNC(void) _PyEval_SetCoroutineWrapper(PyObject *);
-PyAPI_FUNC(PyObject *) _PyEval_GetCoroutineWrapper(void);
-PyAPI_FUNC(void) _PyEval_SetAsyncGenFirstiter(PyObject *);
-PyAPI_FUNC(PyObject *) _PyEval_GetAsyncGenFirstiter(void);
-PyAPI_FUNC(void) _PyEval_SetAsyncGenFinalizer(PyObject *);
-PyAPI_FUNC(PyObject *) _PyEval_GetAsyncGenFinalizer(void);
-#endif
-
-struct _frame; /* Avoid including frameobject.h */
-
-PyAPI_FUNC(PyObject *) PyEval_GetBuiltins(void);
-PyAPI_FUNC(PyObject *) PyEval_GetGlobals(void);
-PyAPI_FUNC(PyObject *) PyEval_GetLocals(void);
-PyAPI_FUNC(struct _frame *) PyEval_GetFrame(void);
-
-#ifndef Py_LIMITED_API
-/* Helper to look up a builtin object */
-PyAPI_FUNC(PyObject *) _PyEval_GetBuiltinId(_Py_Identifier *);
-/* Look at the current frame's (if any) code's co_flags, and turn on
- the corresponding compiler flags in cf->cf_flags. Return 1 if any
- flag was set, else return 0. */
-PyAPI_FUNC(int) PyEval_MergeCompilerFlags(PyCompilerFlags *cf);
-#endif
-
-PyAPI_FUNC(int) Py_AddPendingCall(int (*func)(void *), void *arg);
-PyAPI_FUNC(void) _PyEval_SignalReceived(void);
-PyAPI_FUNC(int) Py_MakePendingCalls(void);
-
-/* Protection against deeply nested recursive calls
-
- In Python 3.0, this protection has two levels:
- * normal anti-recursion protection is triggered when the recursion level
- exceeds the current recursion limit. It raises a RecursionError, and sets
- the "overflowed" flag in the thread state structure. This flag
- temporarily *disables* the normal protection; this allows cleanup code
- to potentially outgrow the recursion limit while processing the
- RecursionError.
- * "last chance" anti-recursion protection is triggered when the recursion
- level exceeds "current recursion limit + 50". By construction, this
- protection can only be triggered when the "overflowed" flag is set. It
- means the cleanup code has itself gone into an infinite loop, or the
- RecursionError has been mistakingly ignored. When this protection is
- triggered, the interpreter aborts with a Fatal Error.
-
- In addition, the "overflowed" flag is automatically reset when the
- recursion level drops below "current recursion limit - 50". This heuristic
- is meant to ensure that the normal anti-recursion protection doesn't get
- disabled too long.
-
- Please note: this scheme has its own limitations. See:
- http://mail.python.org/pipermail/python-dev/2008-August/082106.html
- for some observations.
-*/
-PyAPI_FUNC(void) Py_SetRecursionLimit(int);
-PyAPI_FUNC(int) Py_GetRecursionLimit(void);
-
-#define Py_EnterRecursiveCall(where) \
- (_Py_MakeRecCheck(PyThreadState_GET()->recursion_depth) && \
- _Py_CheckRecursiveCall(where))
-#define Py_LeaveRecursiveCall() \
- do{ if(_Py_MakeEndRecCheck(PyThreadState_GET()->recursion_depth)) \
- PyThreadState_GET()->overflowed = 0; \
- } while(0)
-PyAPI_FUNC(int) _Py_CheckRecursiveCall(const char *where);
-
-/* Due to the macros in which it's used, _Py_CheckRecursionLimit is in
- the stable ABI. It should be removed therefrom when possible.
-*/
-PyAPI_DATA(int) _Py_CheckRecursionLimit;
-
-#ifdef USE_STACKCHECK
-/* With USE_STACKCHECK, trigger stack checks in _Py_CheckRecursiveCall()
- on every 64th call to Py_EnterRecursiveCall.
-*/
-# define _Py_MakeRecCheck(x) \
- (++(x) > _Py_CheckRecursionLimit || \
- ++(PyThreadState_GET()->stackcheck_counter) > 64)
-#else
-# define _Py_MakeRecCheck(x) (++(x) > _Py_CheckRecursionLimit)
-#endif
-
-/* Compute the "lower-water mark" for a recursion limit. When
- * Py_LeaveRecursiveCall() is called with a recursion depth below this mark,
- * the overflowed flag is reset to 0. */
-#define _Py_RecursionLimitLowerWaterMark(limit) \
- (((limit) > 200) \
- ? ((limit) - 50) \
- : (3 * ((limit) >> 2)))
-
-#define _Py_MakeEndRecCheck(x) \
- (--(x) < _Py_RecursionLimitLowerWaterMark(_Py_CheckRecursionLimit))
-
-#define Py_ALLOW_RECURSION \
- do { unsigned char _old = PyThreadState_GET()->recursion_critical;\
- PyThreadState_GET()->recursion_critical = 1;
-
-#define Py_END_ALLOW_RECURSION \
- PyThreadState_GET()->recursion_critical = _old; \
- } while(0);
-
-PyAPI_FUNC(const char *) PyEval_GetFuncName(PyObject *);
-PyAPI_FUNC(const char *) PyEval_GetFuncDesc(PyObject *);
-
-PyAPI_FUNC(PyObject *) PyEval_EvalFrame(struct _frame *);
-PyAPI_FUNC(PyObject *) PyEval_EvalFrameEx(struct _frame *f, int exc);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyEval_EvalFrameDefault(struct _frame *f, int exc);
-#endif
-
-/* Interface for threads.
-
- A module that plans to do a blocking system call (or something else
- that lasts a long time and doesn't touch Python data) can allow other
- threads to run as follows:
-
- ...preparations here...
- Py_BEGIN_ALLOW_THREADS
- ...blocking system call here...
- Py_END_ALLOW_THREADS
- ...interpret result here...
-
- The Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a
- {}-surrounded block.
- To leave the block in the middle (e.g., with return), you must insert
- a line containing Py_BLOCK_THREADS before the return, e.g.
-
- if (...premature_exit...) {
- Py_BLOCK_THREADS
- PyErr_SetFromErrno(PyExc_OSError);
- return NULL;
- }
-
- An alternative is:
-
- Py_BLOCK_THREADS
- if (...premature_exit...) {
- PyErr_SetFromErrno(PyExc_OSError);
- return NULL;
- }
- Py_UNBLOCK_THREADS
-
- For convenience, that the value of 'errno' is restored across
- Py_END_ALLOW_THREADS and Py_BLOCK_THREADS.
-
- WARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND
- Py_END_ALLOW_THREADS!!!
-
- The function PyEval_InitThreads() should be called only from
- init_thread() in "_threadmodule.c".
-
- Note that not yet all candidates have been converted to use this
- mechanism!
-*/
-
-PyAPI_FUNC(PyThreadState *) PyEval_SaveThread(void);
-PyAPI_FUNC(void) PyEval_RestoreThread(PyThreadState *);
-
-PyAPI_FUNC(int) PyEval_ThreadsInitialized(void);
-PyAPI_FUNC(void) PyEval_InitThreads(void);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyEval_FiniThreads(void);
-#endif /* !Py_LIMITED_API */
-PyAPI_FUNC(void) PyEval_AcquireLock(void) Py_DEPRECATED(3.2);
-PyAPI_FUNC(void) PyEval_ReleaseLock(void) /* Py_DEPRECATED(3.2) */;
-PyAPI_FUNC(void) PyEval_AcquireThread(PyThreadState *tstate);
-PyAPI_FUNC(void) PyEval_ReleaseThread(PyThreadState *tstate);
-PyAPI_FUNC(void) PyEval_ReInitThreads(void);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyEval_SetSwitchInterval(unsigned long microseconds);
-PyAPI_FUNC(unsigned long) _PyEval_GetSwitchInterval(void);
-#endif
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(Py_ssize_t) _PyEval_RequestCodeExtraIndex(freefunc);
-#endif
-
-#define Py_BEGIN_ALLOW_THREADS { \
- PyThreadState *_save; \
- _save = PyEval_SaveThread();
-#define Py_BLOCK_THREADS PyEval_RestoreThread(_save);
-#define Py_UNBLOCK_THREADS _save = PyEval_SaveThread();
-#define Py_END_ALLOW_THREADS PyEval_RestoreThread(_save); \
- }
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyEval_SliceIndex(PyObject *, Py_ssize_t *);
-PyAPI_FUNC(int) _PyEval_SliceIndexNotNone(PyObject *, Py_ssize_t *);
-PyAPI_FUNC(void) _PyEval_SignalAsyncExc(void);
-#endif
-
-/* Masks and values used by FORMAT_VALUE opcode. */
-#define FVC_MASK 0x3
-#define FVC_NONE 0x0
-#define FVC_STR 0x1
-#define FVC_REPR 0x2
-#define FVC_ASCII 0x3
-#define FVS_MASK 0x4
-#define FVS_HAVE_SPEC 0x4
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_CEVAL_H */
diff --git a/EasyTrans/Include/classobject.h b/EasyTrans/Include/classobject.h
deleted file mode 100644
index 209f0f4a..00000000
--- a/EasyTrans/Include/classobject.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Former class object interface -- now only bound methods are here */
-
-/* Revealing some structures (not for general use) */
-
-#ifndef Py_LIMITED_API
-#ifndef Py_CLASSOBJECT_H
-#define Py_CLASSOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct {
- PyObject_HEAD
- PyObject *im_func; /* The callable object implementing the method */
- PyObject *im_self; /* The instance it is bound to */
- PyObject *im_weakreflist; /* List of weak references */
-} PyMethodObject;
-
-PyAPI_DATA(PyTypeObject) PyMethod_Type;
-
-#define PyMethod_Check(op) ((op)->ob_type == &PyMethod_Type)
-
-PyAPI_FUNC(PyObject *) PyMethod_New(PyObject *, PyObject *);
-
-PyAPI_FUNC(PyObject *) PyMethod_Function(PyObject *);
-PyAPI_FUNC(PyObject *) PyMethod_Self(PyObject *);
-
-/* Macros for direct access to these values. Type checks are *not*
- done, so use with care. */
-#define PyMethod_GET_FUNCTION(meth) \
- (((PyMethodObject *)meth) -> im_func)
-#define PyMethod_GET_SELF(meth) \
- (((PyMethodObject *)meth) -> im_self)
-
-PyAPI_FUNC(int) PyMethod_ClearFreeList(void);
-
-typedef struct {
- PyObject_HEAD
- PyObject *func;
-} PyInstanceMethodObject;
-
-PyAPI_DATA(PyTypeObject) PyInstanceMethod_Type;
-
-#define PyInstanceMethod_Check(op) ((op)->ob_type == &PyInstanceMethod_Type)
-
-PyAPI_FUNC(PyObject *) PyInstanceMethod_New(PyObject *);
-PyAPI_FUNC(PyObject *) PyInstanceMethod_Function(PyObject *);
-
-/* Macros for direct access to these values. Type checks are *not*
- done, so use with care. */
-#define PyInstanceMethod_GET_FUNCTION(meth) \
- (((PyInstanceMethodObject *)meth) -> func)
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_CLASSOBJECT_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/code.h b/EasyTrans/Include/code.h
deleted file mode 100644
index 2e661e8b..00000000
--- a/EasyTrans/Include/code.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/* Definitions for bytecode */
-
-#ifndef Py_LIMITED_API
-#ifndef Py_CODE_H
-#define Py_CODE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef uint16_t _Py_CODEUNIT;
-
-#ifdef WORDS_BIGENDIAN
-# define _Py_OPCODE(word) ((word) >> 8)
-# define _Py_OPARG(word) ((word) & 255)
-#else
-# define _Py_OPCODE(word) ((word) & 255)
-# define _Py_OPARG(word) ((word) >> 8)
-#endif
-
-/* Bytecode object */
-typedef struct {
- PyObject_HEAD
- int co_argcount; /* #arguments, except *args */
- int co_kwonlyargcount; /* #keyword only arguments */
- int co_nlocals; /* #local variables */
- int co_stacksize; /* #entries needed for evaluation stack */
- int co_flags; /* CO_..., see below */
- int co_firstlineno; /* first source line number */
- PyObject *co_code; /* instruction opcodes */
- PyObject *co_consts; /* list (constants used) */
- PyObject *co_names; /* list of strings (names used) */
- PyObject *co_varnames; /* tuple of strings (local variable names) */
- PyObject *co_freevars; /* tuple of strings (free variable names) */
- PyObject *co_cellvars; /* tuple of strings (cell variable names) */
- /* The rest aren't used in either hash or comparisons, except for co_name,
- used in both. This is done to preserve the name and line number
- for tracebacks and debuggers; otherwise, constant de-duplication
- would collapse identical functions/lambdas defined on different lines.
- */
- Py_ssize_t *co_cell2arg; /* Maps cell vars which are arguments. */
- PyObject *co_filename; /* unicode (where it was loaded from) */
- PyObject *co_name; /* unicode (name, for reference) */
- PyObject *co_lnotab; /* string (encoding addr<->lineno mapping) See
- Objects/lnotab_notes.txt for details. */
- void *co_zombieframe; /* for optimization only (see frameobject.c) */
- PyObject *co_weakreflist; /* to support weakrefs to code objects */
- /* Scratch space for extra data relating to the code object.
- Type is a void* to keep the format private in codeobject.c to force
- people to go through the proper APIs. */
- void *co_extra;
-} PyCodeObject;
-
-/* Masks for co_flags above */
-#define CO_OPTIMIZED 0x0001
-#define CO_NEWLOCALS 0x0002
-#define CO_VARARGS 0x0004
-#define CO_VARKEYWORDS 0x0008
-#define CO_NESTED 0x0010
-#define CO_GENERATOR 0x0020
-/* The CO_NOFREE flag is set if there are no free or cell variables.
- This information is redundant, but it allows a single flag test
- to determine whether there is any extra work to be done when the
- call frame it setup.
-*/
-#define CO_NOFREE 0x0040
-
-/* The CO_COROUTINE flag is set for coroutine functions (defined with
- ``async def`` keywords) */
-#define CO_COROUTINE 0x0080
-#define CO_ITERABLE_COROUTINE 0x0100
-#define CO_ASYNC_GENERATOR 0x0200
-
-/* These are no longer used. */
-#if 0
-#define CO_GENERATOR_ALLOWED 0x1000
-#endif
-#define CO_FUTURE_DIVISION 0x2000
-#define CO_FUTURE_ABSOLUTE_IMPORT 0x4000 /* do absolute imports by default */
-#define CO_FUTURE_WITH_STATEMENT 0x8000
-#define CO_FUTURE_PRINT_FUNCTION 0x10000
-#define CO_FUTURE_UNICODE_LITERALS 0x20000
-
-#define CO_FUTURE_BARRY_AS_BDFL 0x40000
-#define CO_FUTURE_GENERATOR_STOP 0x80000
-#define CO_FUTURE_ANNOTATIONS 0x100000
-
-/* This value is found in the co_cell2arg array when the associated cell
- variable does not correspond to an argument. */
-#define CO_CELL_NOT_AN_ARG (-1)
-
-/* This should be defined if a future statement modifies the syntax.
- For example, when a keyword is added.
-*/
-#define PY_PARSER_REQUIRES_FUTURE_KEYWORD
-
-#define CO_MAXBLOCKS 20 /* Max static block nesting within a function */
-
-PyAPI_DATA(PyTypeObject) PyCode_Type;
-
-#define PyCode_Check(op) (Py_TYPE(op) == &PyCode_Type)
-#define PyCode_GetNumFree(op) (PyTuple_GET_SIZE((op)->co_freevars))
-
-/* Public interface */
-PyAPI_FUNC(PyCodeObject *) PyCode_New(
- int, int, int, int, int, PyObject *, PyObject *,
- PyObject *, PyObject *, PyObject *, PyObject *,
- PyObject *, PyObject *, int, PyObject *);
- /* same as struct above */
-
-/* Creates a new empty code object with the specified source location. */
-PyAPI_FUNC(PyCodeObject *)
-PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno);
-
-/* Return the line number associated with the specified bytecode index
- in this code object. If you just need the line number of a frame,
- use PyFrame_GetLineNumber() instead. */
-PyAPI_FUNC(int) PyCode_Addr2Line(PyCodeObject *, int);
-
-/* for internal use only */
-typedef struct _addr_pair {
- int ap_lower;
- int ap_upper;
-} PyAddrPair;
-
-#ifndef Py_LIMITED_API
-/* Update *bounds to describe the first and one-past-the-last instructions in the
- same line as lasti. Return the number of that line.
-*/
-PyAPI_FUNC(int) _PyCode_CheckLineNumber(PyCodeObject* co,
- int lasti, PyAddrPair *bounds);
-
-/* Create a comparable key used to compare constants taking in account the
- * object type. It is used to make sure types are not coerced (e.g., float and
- * complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms
- *
- * Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)
- * depending on the type and the value. The type is the first item to not
- * compare bytes and str which can raise a BytesWarning exception. */
-PyAPI_FUNC(PyObject*) _PyCode_ConstantKey(PyObject *obj);
-#endif
-
-PyAPI_FUNC(PyObject*) PyCode_Optimize(PyObject *code, PyObject* consts,
- PyObject *names, PyObject *lnotab);
-
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyCode_GetExtra(PyObject *code, Py_ssize_t index,
- void **extra);
-PyAPI_FUNC(int) _PyCode_SetExtra(PyObject *code, Py_ssize_t index,
- void *extra);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_CODE_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/codecs.h b/EasyTrans/Include/codecs.h
deleted file mode 100644
index 3ad0f2b5..00000000
--- a/EasyTrans/Include/codecs.h
+++ /dev/null
@@ -1,240 +0,0 @@
-#ifndef Py_CODECREGISTRY_H
-#define Py_CODECREGISTRY_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ------------------------------------------------------------------------
-
- Python Codec Registry and support functions
-
-
-Written by Marc-Andre Lemburg (mal@lemburg.com).
-
-Copyright (c) Corporation for National Research Initiatives.
-
- ------------------------------------------------------------------------ */
-
-/* Register a new codec search function.
-
- As side effect, this tries to load the encodings package, if not
- yet done, to make sure that it is always first in the list of
- search functions.
-
- The search_function's refcount is incremented by this function. */
-
-PyAPI_FUNC(int) PyCodec_Register(
- PyObject *search_function
- );
-
-/* Codec registry lookup API.
-
- Looks up the given encoding and returns a CodecInfo object with
- function attributes which implement the different aspects of
- processing the encoding.
-
- The encoding string is looked up converted to all lower-case
- characters. This makes encodings looked up through this mechanism
- effectively case-insensitive.
-
- If no codec is found, a KeyError is set and NULL returned.
-
- As side effect, this tries to load the encodings package, if not
- yet done. This is part of the lazy load strategy for the encodings
- package.
-
- */
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyCodec_Lookup(
- const char *encoding
- );
-
-PyAPI_FUNC(int) _PyCodec_Forget(
- const char *encoding
- );
-#endif
-
-/* Codec registry encoding check API.
-
- Returns 1/0 depending on whether there is a registered codec for
- the given encoding.
-
-*/
-
-PyAPI_FUNC(int) PyCodec_KnownEncoding(
- const char *encoding
- );
-
-/* Generic codec based encoding API.
-
- object is passed through the encoder function found for the given
- encoding using the error handling method defined by errors. errors
- may be NULL to use the default method defined for the codec.
-
- Raises a LookupError in case no encoder can be found.
-
- */
-
-PyAPI_FUNC(PyObject *) PyCodec_Encode(
- PyObject *object,
- const char *encoding,
- const char *errors
- );
-
-/* Generic codec based decoding API.
-
- object is passed through the decoder function found for the given
- encoding using the error handling method defined by errors. errors
- may be NULL to use the default method defined for the codec.
-
- Raises a LookupError in case no encoder can be found.
-
- */
-
-PyAPI_FUNC(PyObject *) PyCodec_Decode(
- PyObject *object,
- const char *encoding,
- const char *errors
- );
-
-#ifndef Py_LIMITED_API
-/* Text codec specific encoding and decoding API.
-
- Checks the encoding against a list of codecs which do not
- implement a str<->bytes encoding before attempting the
- operation.
-
- Please note that these APIs are internal and should not
- be used in Python C extensions.
-
- XXX (ncoghlan): should we make these, or something like them, public
- in Python 3.5+?
-
- */
-PyAPI_FUNC(PyObject *) _PyCodec_LookupTextEncoding(
- const char *encoding,
- const char *alternate_command
- );
-
-PyAPI_FUNC(PyObject *) _PyCodec_EncodeText(
- PyObject *object,
- const char *encoding,
- const char *errors
- );
-
-PyAPI_FUNC(PyObject *) _PyCodec_DecodeText(
- PyObject *object,
- const char *encoding,
- const char *errors
- );
-
-/* These two aren't actually text encoding specific, but _io.TextIOWrapper
- * is the only current API consumer.
- */
-PyAPI_FUNC(PyObject *) _PyCodecInfo_GetIncrementalDecoder(
- PyObject *codec_info,
- const char *errors
- );
-
-PyAPI_FUNC(PyObject *) _PyCodecInfo_GetIncrementalEncoder(
- PyObject *codec_info,
- const char *errors
- );
-#endif
-
-
-
-/* --- Codec Lookup APIs --------------------------------------------------
-
- All APIs return a codec object with incremented refcount and are
- based on _PyCodec_Lookup(). The same comments w/r to the encoding
- name also apply to these APIs.
-
-*/
-
-/* Get an encoder function for the given encoding. */
-
-PyAPI_FUNC(PyObject *) PyCodec_Encoder(
- const char *encoding
- );
-
-/* Get a decoder function for the given encoding. */
-
-PyAPI_FUNC(PyObject *) PyCodec_Decoder(
- const char *encoding
- );
-
-/* Get an IncrementalEncoder object for the given encoding. */
-
-PyAPI_FUNC(PyObject *) PyCodec_IncrementalEncoder(
- const char *encoding,
- const char *errors
- );
-
-/* Get an IncrementalDecoder object function for the given encoding. */
-
-PyAPI_FUNC(PyObject *) PyCodec_IncrementalDecoder(
- const char *encoding,
- const char *errors
- );
-
-/* Get a StreamReader factory function for the given encoding. */
-
-PyAPI_FUNC(PyObject *) PyCodec_StreamReader(
- const char *encoding,
- PyObject *stream,
- const char *errors
- );
-
-/* Get a StreamWriter factory function for the given encoding. */
-
-PyAPI_FUNC(PyObject *) PyCodec_StreamWriter(
- const char *encoding,
- PyObject *stream,
- const char *errors
- );
-
-/* Unicode encoding error handling callback registry API */
-
-/* Register the error handling callback function error under the given
- name. This function will be called by the codec when it encounters
- unencodable characters/undecodable bytes and doesn't know the
- callback name, when name is specified as the error parameter
- in the call to the encode/decode function.
- Return 0 on success, -1 on error */
-PyAPI_FUNC(int) PyCodec_RegisterError(const char *name, PyObject *error);
-
-/* Lookup the error handling callback function registered under the given
- name. As a special case NULL can be passed, in which case
- the error handling callback for "strict" will be returned. */
-PyAPI_FUNC(PyObject *) PyCodec_LookupError(const char *name);
-
-/* raise exc as an exception */
-PyAPI_FUNC(PyObject *) PyCodec_StrictErrors(PyObject *exc);
-
-/* ignore the unicode error, skipping the faulty input */
-PyAPI_FUNC(PyObject *) PyCodec_IgnoreErrors(PyObject *exc);
-
-/* replace the unicode encode error with ? or U+FFFD */
-PyAPI_FUNC(PyObject *) PyCodec_ReplaceErrors(PyObject *exc);
-
-/* replace the unicode encode error with XML character references */
-PyAPI_FUNC(PyObject *) PyCodec_XMLCharRefReplaceErrors(PyObject *exc);
-
-/* replace the unicode encode error with backslash escapes (\x, \u and \U) */
-PyAPI_FUNC(PyObject *) PyCodec_BackslashReplaceErrors(PyObject *exc);
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-/* replace the unicode encode error with backslash escapes (\N, \x, \u and \U) */
-PyAPI_FUNC(PyObject *) PyCodec_NameReplaceErrors(PyObject *exc);
-#endif
-
-#ifndef Py_LIMITED_API
-PyAPI_DATA(const char *) Py_hexdigits;
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_CODECREGISTRY_H */
diff --git a/EasyTrans/Include/compile.h b/EasyTrans/Include/compile.h
deleted file mode 100644
index edb961f4..00000000
--- a/EasyTrans/Include/compile.h
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef Py_COMPILE_H
-#define Py_COMPILE_H
-
-#ifndef Py_LIMITED_API
-#include "code.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Public interface */
-struct _node; /* Declare the existence of this type */
-PyAPI_FUNC(PyCodeObject *) PyNode_Compile(struct _node *, const char *);
-/* XXX (ncoghlan): Unprefixed type name in a public API! */
-
-#define PyCF_MASK (CO_FUTURE_DIVISION | CO_FUTURE_ABSOLUTE_IMPORT | \
- CO_FUTURE_WITH_STATEMENT | CO_FUTURE_PRINT_FUNCTION | \
- CO_FUTURE_UNICODE_LITERALS | CO_FUTURE_BARRY_AS_BDFL | \
- CO_FUTURE_GENERATOR_STOP | CO_FUTURE_ANNOTATIONS)
-#define PyCF_MASK_OBSOLETE (CO_NESTED)
-#define PyCF_SOURCE_IS_UTF8 0x0100
-#define PyCF_DONT_IMPLY_DEDENT 0x0200
-#define PyCF_ONLY_AST 0x0400
-#define PyCF_IGNORE_COOKIE 0x0800
-
-#ifndef Py_LIMITED_API
-typedef struct {
- int cf_flags; /* bitmask of CO_xxx flags relevant to future */
-} PyCompilerFlags;
-#endif
-
-/* Future feature support */
-
-typedef struct {
- int ff_features; /* flags set by future statements */
- int ff_lineno; /* line number of last future statement */
-} PyFutureFeatures;
-
-#define FUTURE_NESTED_SCOPES "nested_scopes"
-#define FUTURE_GENERATORS "generators"
-#define FUTURE_DIVISION "division"
-#define FUTURE_ABSOLUTE_IMPORT "absolute_import"
-#define FUTURE_WITH_STATEMENT "with_statement"
-#define FUTURE_PRINT_FUNCTION "print_function"
-#define FUTURE_UNICODE_LITERALS "unicode_literals"
-#define FUTURE_BARRY_AS_BDFL "barry_as_FLUFL"
-#define FUTURE_GENERATOR_STOP "generator_stop"
-#define FUTURE_ANNOTATIONS "annotations"
-
-struct _mod; /* Declare the existence of this type */
-#define PyAST_Compile(mod, s, f, ar) PyAST_CompileEx(mod, s, f, -1, ar)
-PyAPI_FUNC(PyCodeObject *) PyAST_CompileEx(
- struct _mod *mod,
- const char *filename, /* decoded from the filesystem encoding */
- PyCompilerFlags *flags,
- int optimize,
- PyArena *arena);
-PyAPI_FUNC(PyCodeObject *) PyAST_CompileObject(
- struct _mod *mod,
- PyObject *filename,
- PyCompilerFlags *flags,
- int optimize,
- PyArena *arena);
-PyAPI_FUNC(PyFutureFeatures *) PyFuture_FromAST(
- struct _mod * mod,
- const char *filename /* decoded from the filesystem encoding */
- );
-PyAPI_FUNC(PyFutureFeatures *) PyFuture_FromASTObject(
- struct _mod * mod,
- PyObject *filename
- );
-
-/* _Py_Mangle is defined in compile.c */
-PyAPI_FUNC(PyObject*) _Py_Mangle(PyObject *p, PyObject *name);
-
-#define PY_INVALID_STACK_EFFECT INT_MAX
-PyAPI_FUNC(int) PyCompile_OpcodeStackEffect(int opcode, int oparg);
-
-PyAPI_FUNC(int) _PyAST_Optimize(struct _mod *, PyArena *arena, int optimize);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !Py_LIMITED_API */
-
-/* These definitions must match corresponding definitions in graminit.h.
- There's code in compile.c that checks that they are the same. */
-#define Py_single_input 256
-#define Py_file_input 257
-#define Py_eval_input 258
-
-#endif /* !Py_COMPILE_H */
diff --git a/EasyTrans/Include/complexobject.h b/EasyTrans/Include/complexobject.h
deleted file mode 100644
index cb8c52c5..00000000
--- a/EasyTrans/Include/complexobject.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Complex number structure */
-
-#ifndef Py_COMPLEXOBJECT_H
-#define Py_COMPLEXOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-typedef struct {
- double real;
- double imag;
-} Py_complex;
-
-/* Operations on complex numbers from complexmodule.c */
-
-PyAPI_FUNC(Py_complex) _Py_c_sum(Py_complex, Py_complex);
-PyAPI_FUNC(Py_complex) _Py_c_diff(Py_complex, Py_complex);
-PyAPI_FUNC(Py_complex) _Py_c_neg(Py_complex);
-PyAPI_FUNC(Py_complex) _Py_c_prod(Py_complex, Py_complex);
-PyAPI_FUNC(Py_complex) _Py_c_quot(Py_complex, Py_complex);
-PyAPI_FUNC(Py_complex) _Py_c_pow(Py_complex, Py_complex);
-PyAPI_FUNC(double) _Py_c_abs(Py_complex);
-#endif
-
-/* Complex object interface */
-
-/*
-PyComplexObject represents a complex number with double-precision
-real and imaginary parts.
-*/
-#ifndef Py_LIMITED_API
-typedef struct {
- PyObject_HEAD
- Py_complex cval;
-} PyComplexObject;
-#endif
-
-PyAPI_DATA(PyTypeObject) PyComplex_Type;
-
-#define PyComplex_Check(op) PyObject_TypeCheck(op, &PyComplex_Type)
-#define PyComplex_CheckExact(op) (Py_TYPE(op) == &PyComplex_Type)
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) PyComplex_FromCComplex(Py_complex);
-#endif
-PyAPI_FUNC(PyObject *) PyComplex_FromDoubles(double real, double imag);
-
-PyAPI_FUNC(double) PyComplex_RealAsDouble(PyObject *op);
-PyAPI_FUNC(double) PyComplex_ImagAsDouble(PyObject *op);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(Py_complex) PyComplex_AsCComplex(PyObject *op);
-#endif
-
-/* Format the object based on the format_spec, as defined in PEP 3101
- (Advanced String Formatting). */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyComplex_FormatAdvancedWriter(
- _PyUnicodeWriter *writer,
- PyObject *obj,
- PyObject *format_spec,
- Py_ssize_t start,
- Py_ssize_t end);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_COMPLEXOBJECT_H */
diff --git a/EasyTrans/Include/context.h b/EasyTrans/Include/context.h
deleted file mode 100644
index 95812852..00000000
--- a/EasyTrans/Include/context.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef Py_CONTEXT_H
-#define Py_CONTEXT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-
-
-PyAPI_DATA(PyTypeObject) PyContext_Type;
-typedef struct _pycontextobject PyContext;
-
-PyAPI_DATA(PyTypeObject) PyContextVar_Type;
-typedef struct _pycontextvarobject PyContextVar;
-
-PyAPI_DATA(PyTypeObject) PyContextToken_Type;
-typedef struct _pycontexttokenobject PyContextToken;
-
-
-#define PyContext_CheckExact(o) (Py_TYPE(o) == &PyContext_Type)
-#define PyContextVar_CheckExact(o) (Py_TYPE(o) == &PyContextVar_Type)
-#define PyContextToken_CheckExact(o) (Py_TYPE(o) == &PyContextToken_Type)
-
-
-PyAPI_FUNC(PyObject *) PyContext_New(void);
-PyAPI_FUNC(PyObject *) PyContext_Copy(PyObject *);
-PyAPI_FUNC(PyObject *) PyContext_CopyCurrent(void);
-
-PyAPI_FUNC(int) PyContext_Enter(PyObject *);
-PyAPI_FUNC(int) PyContext_Exit(PyObject *);
-
-
-/* Create a new context variable.
-
- default_value can be NULL.
-*/
-PyAPI_FUNC(PyObject *) PyContextVar_New(
- const char *name, PyObject *default_value);
-
-
-/* Get a value for the variable.
-
- Returns -1 if an error occurred during lookup.
-
- Returns 0 if value either was or was not found.
-
- If value was found, *value will point to it.
- If not, it will point to:
-
- - default_value, if not NULL;
- - the default value of "var", if not NULL;
- - NULL.
-
- '*value' will be a new ref, if not NULL.
-*/
-PyAPI_FUNC(int) PyContextVar_Get(
- PyObject *var, PyObject *default_value, PyObject **value);
-
-
-/* Set a new value for the variable.
- Returns NULL if an error occurs.
-*/
-PyAPI_FUNC(PyObject *) PyContextVar_Set(PyObject *var, PyObject *value);
-
-
-/* Reset a variable to its previous value.
- Returns 0 on success, -1 on error.
-*/
-PyAPI_FUNC(int) PyContextVar_Reset(PyObject *var, PyObject *token);
-
-
-/* This method is exposed only for CPython tests. Don not use it. */
-PyAPI_FUNC(PyObject *) _PyContext_NewHamtForTests(void);
-
-
-PyAPI_FUNC(int) PyContext_ClearFreeList(void);
-
-
-#endif /* !Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_CONTEXT_H */
diff --git a/EasyTrans/Include/datetime.h b/EasyTrans/Include/datetime.h
deleted file mode 100644
index 059d5ecf..00000000
--- a/EasyTrans/Include/datetime.h
+++ /dev/null
@@ -1,273 +0,0 @@
-/* datetime.h
- */
-#ifndef Py_LIMITED_API
-#ifndef DATETIME_H
-#define DATETIME_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Fields are packed into successive bytes, each viewed as unsigned and
- * big-endian, unless otherwise noted:
- *
- * byte offset
- * 0 year 2 bytes, 1-9999
- * 2 month 1 byte, 1-12
- * 3 day 1 byte, 1-31
- * 4 hour 1 byte, 0-23
- * 5 minute 1 byte, 0-59
- * 6 second 1 byte, 0-59
- * 7 usecond 3 bytes, 0-999999
- * 10
- */
-
-/* # of bytes for year, month, and day. */
-#define _PyDateTime_DATE_DATASIZE 4
-
-/* # of bytes for hour, minute, second, and usecond. */
-#define _PyDateTime_TIME_DATASIZE 6
-
-/* # of bytes for year, month, day, hour, minute, second, and usecond. */
-#define _PyDateTime_DATETIME_DATASIZE 10
-
-
-typedef struct
-{
- PyObject_HEAD
- Py_hash_t hashcode; /* -1 when unknown */
- int days; /* -MAX_DELTA_DAYS <= days <= MAX_DELTA_DAYS */
- int seconds; /* 0 <= seconds < 24*3600 is invariant */
- int microseconds; /* 0 <= microseconds < 1000000 is invariant */
-} PyDateTime_Delta;
-
-typedef struct
-{
- PyObject_HEAD /* a pure abstract base class */
-} PyDateTime_TZInfo;
-
-
-/* The datetime and time types have hashcodes, and an optional tzinfo member,
- * present if and only if hastzinfo is true.
- */
-#define _PyTZINFO_HEAD \
- PyObject_HEAD \
- Py_hash_t hashcode; \
- char hastzinfo; /* boolean flag */
-
-/* No _PyDateTime_BaseTZInfo is allocated; it's just to have something
- * convenient to cast to, when getting at the hastzinfo member of objects
- * starting with _PyTZINFO_HEAD.
- */
-typedef struct
-{
- _PyTZINFO_HEAD
-} _PyDateTime_BaseTZInfo;
-
-/* All time objects are of PyDateTime_TimeType, but that can be allocated
- * in two ways, with or without a tzinfo member. Without is the same as
- * tzinfo == None, but consumes less memory. _PyDateTime_BaseTime is an
- * internal struct used to allocate the right amount of space for the
- * "without" case.
- */
-#define _PyDateTime_TIMEHEAD \
- _PyTZINFO_HEAD \
- unsigned char data[_PyDateTime_TIME_DATASIZE];
-
-typedef struct
-{
- _PyDateTime_TIMEHEAD
-} _PyDateTime_BaseTime; /* hastzinfo false */
-
-typedef struct
-{
- _PyDateTime_TIMEHEAD
- unsigned char fold;
- PyObject *tzinfo;
-} PyDateTime_Time; /* hastzinfo true */
-
-
-/* All datetime objects are of PyDateTime_DateTimeType, but that can be
- * allocated in two ways too, just like for time objects above. In addition,
- * the plain date type is a base class for datetime, so it must also have
- * a hastzinfo member (although it's unused there).
- */
-typedef struct
-{
- _PyTZINFO_HEAD
- unsigned char data[_PyDateTime_DATE_DATASIZE];
-} PyDateTime_Date;
-
-#define _PyDateTime_DATETIMEHEAD \
- _PyTZINFO_HEAD \
- unsigned char data[_PyDateTime_DATETIME_DATASIZE];
-
-typedef struct
-{
- _PyDateTime_DATETIMEHEAD
-} _PyDateTime_BaseDateTime; /* hastzinfo false */
-
-typedef struct
-{
- _PyDateTime_DATETIMEHEAD
- unsigned char fold;
- PyObject *tzinfo;
-} PyDateTime_DateTime; /* hastzinfo true */
-
-
-/* Apply for date and datetime instances. */
-#define PyDateTime_GET_YEAR(o) ((((PyDateTime_Date*)o)->data[0] << 8) | \
- ((PyDateTime_Date*)o)->data[1])
-#define PyDateTime_GET_MONTH(o) (((PyDateTime_Date*)o)->data[2])
-#define PyDateTime_GET_DAY(o) (((PyDateTime_Date*)o)->data[3])
-
-#define PyDateTime_DATE_GET_HOUR(o) (((PyDateTime_DateTime*)o)->data[4])
-#define PyDateTime_DATE_GET_MINUTE(o) (((PyDateTime_DateTime*)o)->data[5])
-#define PyDateTime_DATE_GET_SECOND(o) (((PyDateTime_DateTime*)o)->data[6])
-#define PyDateTime_DATE_GET_MICROSECOND(o) \
- ((((PyDateTime_DateTime*)o)->data[7] << 16) | \
- (((PyDateTime_DateTime*)o)->data[8] << 8) | \
- ((PyDateTime_DateTime*)o)->data[9])
-#define PyDateTime_DATE_GET_FOLD(o) (((PyDateTime_DateTime*)o)->fold)
-
-/* Apply for time instances. */
-#define PyDateTime_TIME_GET_HOUR(o) (((PyDateTime_Time*)o)->data[0])
-#define PyDateTime_TIME_GET_MINUTE(o) (((PyDateTime_Time*)o)->data[1])
-#define PyDateTime_TIME_GET_SECOND(o) (((PyDateTime_Time*)o)->data[2])
-#define PyDateTime_TIME_GET_MICROSECOND(o) \
- ((((PyDateTime_Time*)o)->data[3] << 16) | \
- (((PyDateTime_Time*)o)->data[4] << 8) | \
- ((PyDateTime_Time*)o)->data[5])
-#define PyDateTime_TIME_GET_FOLD(o) (((PyDateTime_Time*)o)->fold)
-
-/* Apply for time delta instances */
-#define PyDateTime_DELTA_GET_DAYS(o) (((PyDateTime_Delta*)o)->days)
-#define PyDateTime_DELTA_GET_SECONDS(o) (((PyDateTime_Delta*)o)->seconds)
-#define PyDateTime_DELTA_GET_MICROSECONDS(o) \
- (((PyDateTime_Delta*)o)->microseconds)
-
-
-/* Define structure for C API. */
-typedef struct {
- /* type objects */
- PyTypeObject *DateType;
- PyTypeObject *DateTimeType;
- PyTypeObject *TimeType;
- PyTypeObject *DeltaType;
- PyTypeObject *TZInfoType;
-
- /* singletons */
- PyObject *TimeZone_UTC;
-
- /* constructors */
- PyObject *(*Date_FromDate)(int, int, int, PyTypeObject*);
- PyObject *(*DateTime_FromDateAndTime)(int, int, int, int, int, int, int,
- PyObject*, PyTypeObject*);
- PyObject *(*Time_FromTime)(int, int, int, int, PyObject*, PyTypeObject*);
- PyObject *(*Delta_FromDelta)(int, int, int, int, PyTypeObject*);
- PyObject *(*TimeZone_FromTimeZone)(PyObject *offset, PyObject *name);
-
- /* constructors for the DB API */
- PyObject *(*DateTime_FromTimestamp)(PyObject*, PyObject*, PyObject*);
- PyObject *(*Date_FromTimestamp)(PyObject*, PyObject*);
-
- /* PEP 495 constructors */
- PyObject *(*DateTime_FromDateAndTimeAndFold)(int, int, int, int, int, int, int,
- PyObject*, int, PyTypeObject*);
- PyObject *(*Time_FromTimeAndFold)(int, int, int, int, PyObject*, int, PyTypeObject*);
-
-} PyDateTime_CAPI;
-
-#define PyDateTime_CAPSULE_NAME "datetime.datetime_CAPI"
-
-
-#ifdef Py_BUILD_CORE
-
-/* Macros for type checking when building the Python core. */
-#define PyDate_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateType)
-#define PyDate_CheckExact(op) (Py_TYPE(op) == &PyDateTime_DateType)
-
-#define PyDateTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateTimeType)
-#define PyDateTime_CheckExact(op) (Py_TYPE(op) == &PyDateTime_DateTimeType)
-
-#define PyTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_TimeType)
-#define PyTime_CheckExact(op) (Py_TYPE(op) == &PyDateTime_TimeType)
-
-#define PyDelta_Check(op) PyObject_TypeCheck(op, &PyDateTime_DeltaType)
-#define PyDelta_CheckExact(op) (Py_TYPE(op) == &PyDateTime_DeltaType)
-
-#define PyTZInfo_Check(op) PyObject_TypeCheck(op, &PyDateTime_TZInfoType)
-#define PyTZInfo_CheckExact(op) (Py_TYPE(op) == &PyDateTime_TZInfoType)
-
-#else
-
-/* Define global variable for the C API and a macro for setting it. */
-static PyDateTime_CAPI *PyDateTimeAPI = NULL;
-
-#define PyDateTime_IMPORT \
- PyDateTimeAPI = (PyDateTime_CAPI *)PyCapsule_Import(PyDateTime_CAPSULE_NAME, 0)
-
-/* Macro for access to the UTC singleton */
-#define PyDateTime_TimeZone_UTC PyDateTimeAPI->TimeZone_UTC
-
-/* Macros for type checking when not building the Python core. */
-#define PyDate_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateType)
-#define PyDate_CheckExact(op) (Py_TYPE(op) == PyDateTimeAPI->DateType)
-
-#define PyDateTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateTimeType)
-#define PyDateTime_CheckExact(op) (Py_TYPE(op) == PyDateTimeAPI->DateTimeType)
-
-#define PyTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TimeType)
-#define PyTime_CheckExact(op) (Py_TYPE(op) == PyDateTimeAPI->TimeType)
-
-#define PyDelta_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DeltaType)
-#define PyDelta_CheckExact(op) (Py_TYPE(op) == PyDateTimeAPI->DeltaType)
-
-#define PyTZInfo_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TZInfoType)
-#define PyTZInfo_CheckExact(op) (Py_TYPE(op) == PyDateTimeAPI->TZInfoType)
-
-/* Macros for accessing constructors in a simplified fashion. */
-#define PyDate_FromDate(year, month, day) \
- PyDateTimeAPI->Date_FromDate(year, month, day, PyDateTimeAPI->DateType)
-
-#define PyDateTime_FromDateAndTime(year, month, day, hour, min, sec, usec) \
- PyDateTimeAPI->DateTime_FromDateAndTime(year, month, day, hour, \
- min, sec, usec, Py_None, PyDateTimeAPI->DateTimeType)
-
-#define PyDateTime_FromDateAndTimeAndFold(year, month, day, hour, min, sec, usec, fold) \
- PyDateTimeAPI->DateTime_FromDateAndTimeAndFold(year, month, day, hour, \
- min, sec, usec, Py_None, fold, PyDateTimeAPI->DateTimeType)
-
-#define PyTime_FromTime(hour, minute, second, usecond) \
- PyDateTimeAPI->Time_FromTime(hour, minute, second, usecond, \
- Py_None, PyDateTimeAPI->TimeType)
-
-#define PyTime_FromTimeAndFold(hour, minute, second, usecond, fold) \
- PyDateTimeAPI->Time_FromTimeAndFold(hour, minute, second, usecond, \
- Py_None, fold, PyDateTimeAPI->TimeType)
-
-#define PyDelta_FromDSU(days, seconds, useconds) \
- PyDateTimeAPI->Delta_FromDelta(days, seconds, useconds, 1, \
- PyDateTimeAPI->DeltaType)
-
-#define PyTimeZone_FromOffset(offset) \
- PyDateTimeAPI->TimeZone_FromTimeZone(offset, NULL)
-
-#define PyTimeZone_FromOffsetAndName(offset, name) \
- PyDateTimeAPI->TimeZone_FromTimeZone(offset, name)
-
-/* Macros supporting the DB API. */
-#define PyDateTime_FromTimestamp(args) \
- PyDateTimeAPI->DateTime_FromTimestamp( \
- (PyObject*) (PyDateTimeAPI->DateTimeType), args, NULL)
-
-#define PyDate_FromTimestamp(args) \
- PyDateTimeAPI->Date_FromTimestamp( \
- (PyObject*) (PyDateTimeAPI->DateType), args)
-
-#endif /* Py_BUILD_CORE */
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-#endif /* !Py_LIMITED_API */
diff --git a/EasyTrans/Include/descrobject.h b/EasyTrans/Include/descrobject.h
deleted file mode 100644
index 73bbb3fe..00000000
--- a/EasyTrans/Include/descrobject.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Descriptors */
-#ifndef Py_DESCROBJECT_H
-#define Py_DESCROBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef PyObject *(*getter)(PyObject *, void *);
-typedef int (*setter)(PyObject *, PyObject *, void *);
-
-typedef struct PyGetSetDef {
- const char *name;
- getter get;
- setter set;
- const char *doc;
- void *closure;
-} PyGetSetDef;
-
-#ifndef Py_LIMITED_API
-typedef PyObject *(*wrapperfunc)(PyObject *self, PyObject *args,
- void *wrapped);
-
-typedef PyObject *(*wrapperfunc_kwds)(PyObject *self, PyObject *args,
- void *wrapped, PyObject *kwds);
-
-struct wrapperbase {
- const char *name;
- int offset;
- void *function;
- wrapperfunc wrapper;
- const char *doc;
- int flags;
- PyObject *name_strobj;
-};
-
-/* Flags for above struct */
-#define PyWrapperFlag_KEYWORDS 1 /* wrapper function takes keyword args */
-
-/* Various kinds of descriptor objects */
-
-typedef struct {
- PyObject_HEAD
- PyTypeObject *d_type;
- PyObject *d_name;
- PyObject *d_qualname;
-} PyDescrObject;
-
-#define PyDescr_COMMON PyDescrObject d_common
-
-#define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type)
-#define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name)
-
-typedef struct {
- PyDescr_COMMON;
- PyMethodDef *d_method;
-} PyMethodDescrObject;
-
-typedef struct {
- PyDescr_COMMON;
- struct PyMemberDef *d_member;
-} PyMemberDescrObject;
-
-typedef struct {
- PyDescr_COMMON;
- PyGetSetDef *d_getset;
-} PyGetSetDescrObject;
-
-typedef struct {
- PyDescr_COMMON;
- struct wrapperbase *d_base;
- void *d_wrapped; /* This can be any function pointer */
-} PyWrapperDescrObject;
-#endif /* Py_LIMITED_API */
-
-PyAPI_DATA(PyTypeObject) PyClassMethodDescr_Type;
-PyAPI_DATA(PyTypeObject) PyGetSetDescr_Type;
-PyAPI_DATA(PyTypeObject) PyMemberDescr_Type;
-PyAPI_DATA(PyTypeObject) PyMethodDescr_Type;
-PyAPI_DATA(PyTypeObject) PyWrapperDescr_Type;
-PyAPI_DATA(PyTypeObject) PyDictProxy_Type;
-#ifndef Py_LIMITED_API
-PyAPI_DATA(PyTypeObject) _PyMethodWrapper_Type;
-#endif /* Py_LIMITED_API */
-
-PyAPI_FUNC(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *);
-PyAPI_FUNC(PyObject *) PyDescr_NewClassMethod(PyTypeObject *, PyMethodDef *);
-struct PyMemberDef; /* forward declaration for following prototype */
-PyAPI_FUNC(PyObject *) PyDescr_NewMember(PyTypeObject *,
- struct PyMemberDef *);
-PyAPI_FUNC(PyObject *) PyDescr_NewGetSet(PyTypeObject *,
- struct PyGetSetDef *);
-#ifndef Py_LIMITED_API
-
-PyAPI_FUNC(PyObject *) _PyMethodDescr_FastCallKeywords(
- PyObject *descrobj, PyObject *const *stack, Py_ssize_t nargs, PyObject *kwnames);
-PyAPI_FUNC(PyObject *) PyDescr_NewWrapper(PyTypeObject *,
- struct wrapperbase *, void *);
-#define PyDescr_IsData(d) (Py_TYPE(d)->tp_descr_set != NULL)
-#endif
-
-PyAPI_FUNC(PyObject *) PyDictProxy_New(PyObject *);
-PyAPI_FUNC(PyObject *) PyWrapper_New(PyObject *, PyObject *);
-
-
-PyAPI_DATA(PyTypeObject) PyProperty_Type;
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_DESCROBJECT_H */
-
diff --git a/EasyTrans/Include/dictobject.h b/EasyTrans/Include/dictobject.h
deleted file mode 100644
index 28930f43..00000000
--- a/EasyTrans/Include/dictobject.h
+++ /dev/null
@@ -1,179 +0,0 @@
-#ifndef Py_DICTOBJECT_H
-#define Py_DICTOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Dictionary object type -- mapping from hashable object to object */
-
-/* The distribution includes a separate file, Objects/dictnotes.txt,
- describing explorations into dictionary design and optimization.
- It covers typical dictionary use patterns, the parameters for
- tuning dictionaries, and several ideas for possible optimizations.
-*/
-
-#ifndef Py_LIMITED_API
-
-typedef struct _dictkeysobject PyDictKeysObject;
-
-/* The ma_values pointer is NULL for a combined table
- * or points to an array of PyObject* for a split table
- */
-typedef struct {
- PyObject_HEAD
-
- /* Number of items in the dictionary */
- Py_ssize_t ma_used;
-
- /* Dictionary version: globally unique, value change each time
- the dictionary is modified */
- uint64_t ma_version_tag;
-
- PyDictKeysObject *ma_keys;
-
- /* If ma_values is NULL, the table is "combined": keys and values
- are stored in ma_keys.
-
- If ma_values is not NULL, the table is splitted:
- keys are stored in ma_keys and values are stored in ma_values */
- PyObject **ma_values;
-} PyDictObject;
-
-typedef struct {
- PyObject_HEAD
- PyDictObject *dv_dict;
-} _PyDictViewObject;
-
-#endif /* Py_LIMITED_API */
-
-PyAPI_DATA(PyTypeObject) PyDict_Type;
-PyAPI_DATA(PyTypeObject) PyDictIterKey_Type;
-PyAPI_DATA(PyTypeObject) PyDictIterValue_Type;
-PyAPI_DATA(PyTypeObject) PyDictIterItem_Type;
-PyAPI_DATA(PyTypeObject) PyDictKeys_Type;
-PyAPI_DATA(PyTypeObject) PyDictItems_Type;
-PyAPI_DATA(PyTypeObject) PyDictValues_Type;
-
-#define PyDict_Check(op) \
- PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_DICT_SUBCLASS)
-#define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
-#define PyDictKeys_Check(op) PyObject_TypeCheck(op, &PyDictKeys_Type)
-#define PyDictItems_Check(op) PyObject_TypeCheck(op, &PyDictItems_Type)
-#define PyDictValues_Check(op) PyObject_TypeCheck(op, &PyDictValues_Type)
-/* This excludes Values, since they are not sets. */
-# define PyDictViewSet_Check(op) \
- (PyDictKeys_Check(op) || PyDictItems_Check(op))
-
-
-PyAPI_FUNC(PyObject *) PyDict_New(void);
-PyAPI_FUNC(PyObject *) PyDict_GetItem(PyObject *mp, PyObject *key);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyDict_GetItem_KnownHash(PyObject *mp, PyObject *key,
- Py_hash_t hash);
-#endif
-PyAPI_FUNC(PyObject *) PyDict_GetItemWithError(PyObject *mp, PyObject *key);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyDict_GetItemIdWithError(PyObject *dp,
- struct _Py_Identifier *key);
-PyAPI_FUNC(PyObject *) PyDict_SetDefault(
- PyObject *mp, PyObject *key, PyObject *defaultobj);
-#endif
-PyAPI_FUNC(int) PyDict_SetItem(PyObject *mp, PyObject *key, PyObject *item);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyDict_SetItem_KnownHash(PyObject *mp, PyObject *key,
- PyObject *item, Py_hash_t hash);
-#endif
-PyAPI_FUNC(int) PyDict_DelItem(PyObject *mp, PyObject *key);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyDict_DelItem_KnownHash(PyObject *mp, PyObject *key,
- Py_hash_t hash);
-PyAPI_FUNC(int) _PyDict_DelItemIf(PyObject *mp, PyObject *key,
- int (*predicate)(PyObject *value));
-#endif
-PyAPI_FUNC(void) PyDict_Clear(PyObject *mp);
-PyAPI_FUNC(int) PyDict_Next(
- PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value);
-#ifndef Py_LIMITED_API
-PyDictKeysObject *_PyDict_NewKeysForClass(void);
-PyAPI_FUNC(PyObject *) PyObject_GenericGetDict(PyObject *, void *);
-PyAPI_FUNC(int) _PyDict_Next(
- PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value, Py_hash_t *hash);
-PyObject *_PyDictView_New(PyObject *, PyTypeObject *);
-#endif
-PyAPI_FUNC(PyObject *) PyDict_Keys(PyObject *mp);
-PyAPI_FUNC(PyObject *) PyDict_Values(PyObject *mp);
-PyAPI_FUNC(PyObject *) PyDict_Items(PyObject *mp);
-PyAPI_FUNC(Py_ssize_t) PyDict_Size(PyObject *mp);
-PyAPI_FUNC(PyObject *) PyDict_Copy(PyObject *mp);
-PyAPI_FUNC(int) PyDict_Contains(PyObject *mp, PyObject *key);
-#ifndef Py_LIMITED_API
-/* Get the number of items of a dictionary. */
-#define PyDict_GET_SIZE(mp) (assert(PyDict_Check(mp)),((PyDictObject *)mp)->ma_used)
-PyAPI_FUNC(int) _PyDict_Contains(PyObject *mp, PyObject *key, Py_hash_t hash);
-PyAPI_FUNC(PyObject *) _PyDict_NewPresized(Py_ssize_t minused);
-PyAPI_FUNC(void) _PyDict_MaybeUntrack(PyObject *mp);
-PyAPI_FUNC(int) _PyDict_HasOnlyStringKeys(PyObject *mp);
-Py_ssize_t _PyDict_KeysSize(PyDictKeysObject *keys);
-PyAPI_FUNC(Py_ssize_t) _PyDict_SizeOf(PyDictObject *);
-PyAPI_FUNC(PyObject *) _PyDict_Pop(PyObject *, PyObject *, PyObject *);
-PyObject *_PyDict_Pop_KnownHash(PyObject *, PyObject *, Py_hash_t, PyObject *);
-PyObject *_PyDict_FromKeys(PyObject *, PyObject *, PyObject *);
-#define _PyDict_HasSplitTable(d) ((d)->ma_values != NULL)
-
-PyAPI_FUNC(int) PyDict_ClearFreeList(void);
-#endif
-
-/* PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1). */
-PyAPI_FUNC(int) PyDict_Update(PyObject *mp, PyObject *other);
-
-/* PyDict_Merge updates/merges from a mapping object (an object that
- supports PyMapping_Keys() and PyObject_GetItem()). If override is true,
- the last occurrence of a key wins, else the first. The Python
- dict.update(other) is equivalent to PyDict_Merge(dict, other, 1).
-*/
-PyAPI_FUNC(int) PyDict_Merge(PyObject *mp,
- PyObject *other,
- int override);
-
-#ifndef Py_LIMITED_API
-/* Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,
- the first occurrence of a key wins, if override is 1, the last occurrence
- of a key wins, if override is 2, a KeyError with conflicting key as
- argument is raised.
-*/
-PyAPI_FUNC(int) _PyDict_MergeEx(PyObject *mp, PyObject *other, int override);
-PyAPI_FUNC(PyObject *) _PyDictView_Intersect(PyObject* self, PyObject *other);
-#endif
-
-/* PyDict_MergeFromSeq2 updates/merges from an iterable object producing
- iterable objects of length 2. If override is true, the last occurrence
- of a key wins, else the first. The Python dict constructor dict(seq2)
- is equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1).
-*/
-PyAPI_FUNC(int) PyDict_MergeFromSeq2(PyObject *d,
- PyObject *seq2,
- int override);
-
-PyAPI_FUNC(PyObject *) PyDict_GetItemString(PyObject *dp, const char *key);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyDict_GetItemId(PyObject *dp, struct _Py_Identifier *key);
-#endif /* !Py_LIMITED_API */
-PyAPI_FUNC(int) PyDict_SetItemString(PyObject *dp, const char *key, PyObject *item);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyDict_SetItemId(PyObject *dp, struct _Py_Identifier *key, PyObject *item);
-#endif /* !Py_LIMITED_API */
-PyAPI_FUNC(int) PyDict_DelItemString(PyObject *dp, const char *key);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyDict_DelItemId(PyObject *mp, struct _Py_Identifier *key);
-PyAPI_FUNC(void) _PyDict_DebugMallocStats(FILE *out);
-
-int _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr, PyObject *name, PyObject *value);
-PyObject *_PyDict_LoadGlobal(PyDictObject *, PyDictObject *, PyObject *);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_DICTOBJECT_H */
diff --git a/EasyTrans/Include/dtoa.h b/EasyTrans/Include/dtoa.h
deleted file mode 100644
index 9bfb6251..00000000
--- a/EasyTrans/Include/dtoa.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef Py_LIMITED_API
-#ifndef PY_NO_SHORT_FLOAT_REPR
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(double) _Py_dg_strtod(const char *str, char **ptr);
-PyAPI_FUNC(char *) _Py_dg_dtoa(double d, int mode, int ndigits,
- int *decpt, int *sign, char **rve);
-PyAPI_FUNC(void) _Py_dg_freedtoa(char *s);
-PyAPI_FUNC(double) _Py_dg_stdnan(int sign);
-PyAPI_FUNC(double) _Py_dg_infinity(int sign);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-#endif
diff --git a/EasyTrans/Include/dynamic_annotations.h b/EasyTrans/Include/dynamic_annotations.h
deleted file mode 100644
index 0bd1a833..00000000
--- a/EasyTrans/Include/dynamic_annotations.h
+++ /dev/null
@@ -1,499 +0,0 @@
-/* Copyright (c) 2008-2009, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ---
- * Author: Kostya Serebryany
- * Copied to CPython by Jeffrey Yasskin, with all macros renamed to
- * start with _Py_ to avoid colliding with users embedding Python, and
- * with deprecated macros removed.
- */
-
-/* This file defines dynamic annotations for use with dynamic analysis
- tool such as valgrind, PIN, etc.
-
- Dynamic annotation is a source code annotation that affects
- the generated code (that is, the annotation is not a comment).
- Each such annotation is attached to a particular
- instruction and/or to a particular object (address) in the program.
-
- The annotations that should be used by users are macros in all upper-case
- (e.g., _Py_ANNOTATE_NEW_MEMORY).
-
- Actual implementation of these macros may differ depending on the
- dynamic analysis tool being used.
-
- See http://code.google.com/p/data-race-test/ for more information.
-
- This file supports the following dynamic analysis tools:
- - None (DYNAMIC_ANNOTATIONS_ENABLED is not defined or zero).
- Macros are defined empty.
- - ThreadSanitizer, Helgrind, DRD (DYNAMIC_ANNOTATIONS_ENABLED is 1).
- Macros are defined as calls to non-inlinable empty functions
- that are intercepted by Valgrind. */
-
-#ifndef __DYNAMIC_ANNOTATIONS_H__
-#define __DYNAMIC_ANNOTATIONS_H__
-
-#ifndef DYNAMIC_ANNOTATIONS_ENABLED
-# define DYNAMIC_ANNOTATIONS_ENABLED 0
-#endif
-
-#if DYNAMIC_ANNOTATIONS_ENABLED != 0
-
- /* -------------------------------------------------------------
- Annotations useful when implementing condition variables such as CondVar,
- using conditional critical sections (Await/LockWhen) and when constructing
- user-defined synchronization mechanisms.
-
- The annotations _Py_ANNOTATE_HAPPENS_BEFORE() and
- _Py_ANNOTATE_HAPPENS_AFTER() can be used to define happens-before arcs in
- user-defined synchronization mechanisms: the race detector will infer an
- arc from the former to the latter when they share the same argument
- pointer.
-
- Example 1 (reference counting):
-
- void Unref() {
- _Py_ANNOTATE_HAPPENS_BEFORE(&refcount_);
- if (AtomicDecrementByOne(&refcount_) == 0) {
- _Py_ANNOTATE_HAPPENS_AFTER(&refcount_);
- delete this;
- }
- }
-
- Example 2 (message queue):
-
- void MyQueue::Put(Type *e) {
- MutexLock lock(&mu_);
- _Py_ANNOTATE_HAPPENS_BEFORE(e);
- PutElementIntoMyQueue(e);
- }
-
- Type *MyQueue::Get() {
- MutexLock lock(&mu_);
- Type *e = GetElementFromMyQueue();
- _Py_ANNOTATE_HAPPENS_AFTER(e);
- return e;
- }
-
- Note: when possible, please use the existing reference counting and message
- queue implementations instead of inventing new ones. */
-
- /* Report that wait on the condition variable at address "cv" has succeeded
- and the lock at address "lock" is held. */
-#define _Py_ANNOTATE_CONDVAR_LOCK_WAIT(cv, lock) \
- AnnotateCondVarWait(__FILE__, __LINE__, cv, lock)
-
- /* Report that wait on the condition variable at "cv" has succeeded. Variant
- w/o lock. */
-#define _Py_ANNOTATE_CONDVAR_WAIT(cv) \
- AnnotateCondVarWait(__FILE__, __LINE__, cv, NULL)
-
- /* Report that we are about to signal on the condition variable at address
- "cv". */
-#define _Py_ANNOTATE_CONDVAR_SIGNAL(cv) \
- AnnotateCondVarSignal(__FILE__, __LINE__, cv)
-
- /* Report that we are about to signal_all on the condition variable at "cv". */
-#define _Py_ANNOTATE_CONDVAR_SIGNAL_ALL(cv) \
- AnnotateCondVarSignalAll(__FILE__, __LINE__, cv)
-
- /* Annotations for user-defined synchronization mechanisms. */
-#define _Py_ANNOTATE_HAPPENS_BEFORE(obj) _Py_ANNOTATE_CONDVAR_SIGNAL(obj)
-#define _Py_ANNOTATE_HAPPENS_AFTER(obj) _Py_ANNOTATE_CONDVAR_WAIT(obj)
-
- /* Report that the bytes in the range [pointer, pointer+size) are about
- to be published safely. The race checker will create a happens-before
- arc from the call _Py_ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) to
- subsequent accesses to this memory.
- Note: this annotation may not work properly if the race detector uses
- sampling, i.e. does not observe all memory accesses.
- */
-#define _Py_ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) \
- AnnotatePublishMemoryRange(__FILE__, __LINE__, pointer, size)
-
- /* Instruct the tool to create a happens-before arc between mu->Unlock() and
- mu->Lock(). This annotation may slow down the race detector and hide real
- races. Normally it is used only when it would be difficult to annotate each
- of the mutex's critical sections individually using the annotations above.
- This annotation makes sense only for hybrid race detectors. For pure
- happens-before detectors this is a no-op. For more details see
- http://code.google.com/p/data-race-test/wiki/PureHappensBeforeVsHybrid . */
-#define _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(mu) \
- AnnotateMutexIsUsedAsCondVar(__FILE__, __LINE__, mu)
-
- /* -------------------------------------------------------------
- Annotations useful when defining memory allocators, or when memory that
- was protected in one way starts to be protected in another. */
-
- /* Report that a new memory at "address" of size "size" has been allocated.
- This might be used when the memory has been retrieved from a free list and
- is about to be reused, or when the locking discipline for a variable
- changes. */
-#define _Py_ANNOTATE_NEW_MEMORY(address, size) \
- AnnotateNewMemory(__FILE__, __LINE__, address, size)
-
- /* -------------------------------------------------------------
- Annotations useful when defining FIFO queues that transfer data between
- threads. */
-
- /* Report that the producer-consumer queue (such as ProducerConsumerQueue) at
- address "pcq" has been created. The _Py_ANNOTATE_PCQ_* annotations should
- be used only for FIFO queues. For non-FIFO queues use
- _Py_ANNOTATE_HAPPENS_BEFORE (for put) and _Py_ANNOTATE_HAPPENS_AFTER (for
- get). */
-#define _Py_ANNOTATE_PCQ_CREATE(pcq) \
- AnnotatePCQCreate(__FILE__, __LINE__, pcq)
-
- /* Report that the queue at address "pcq" is about to be destroyed. */
-#define _Py_ANNOTATE_PCQ_DESTROY(pcq) \
- AnnotatePCQDestroy(__FILE__, __LINE__, pcq)
-
- /* Report that we are about to put an element into a FIFO queue at address
- "pcq". */
-#define _Py_ANNOTATE_PCQ_PUT(pcq) \
- AnnotatePCQPut(__FILE__, __LINE__, pcq)
-
- /* Report that we've just got an element from a FIFO queue at address "pcq". */
-#define _Py_ANNOTATE_PCQ_GET(pcq) \
- AnnotatePCQGet(__FILE__, __LINE__, pcq)
-
- /* -------------------------------------------------------------
- Annotations that suppress errors. It is usually better to express the
- program's synchronization using the other annotations, but these can
- be used when all else fails. */
-
- /* Report that we may have a benign race at "pointer", with size
- "sizeof(*(pointer))". "pointer" must be a non-void* pointer. Insert at the
- point where "pointer" has been allocated, preferably close to the point
- where the race happens. See also _Py_ANNOTATE_BENIGN_RACE_STATIC. */
-#define _Py_ANNOTATE_BENIGN_RACE(pointer, description) \
- AnnotateBenignRaceSized(__FILE__, __LINE__, pointer, \
- sizeof(*(pointer)), description)
-
- /* Same as _Py_ANNOTATE_BENIGN_RACE(address, description), but applies to
- the memory range [address, address+size). */
-#define _Py_ANNOTATE_BENIGN_RACE_SIZED(address, size, description) \
- AnnotateBenignRaceSized(__FILE__, __LINE__, address, size, description)
-
- /* Request the analysis tool to ignore all reads in the current thread
- until _Py_ANNOTATE_IGNORE_READS_END is called.
- Useful to ignore intentional racey reads, while still checking
- other reads and all writes.
- See also _Py_ANNOTATE_UNPROTECTED_READ. */
-#define _Py_ANNOTATE_IGNORE_READS_BEGIN() \
- AnnotateIgnoreReadsBegin(__FILE__, __LINE__)
-
- /* Stop ignoring reads. */
-#define _Py_ANNOTATE_IGNORE_READS_END() \
- AnnotateIgnoreReadsEnd(__FILE__, __LINE__)
-
- /* Similar to _Py_ANNOTATE_IGNORE_READS_BEGIN, but ignore writes. */
-#define _Py_ANNOTATE_IGNORE_WRITES_BEGIN() \
- AnnotateIgnoreWritesBegin(__FILE__, __LINE__)
-
- /* Stop ignoring writes. */
-#define _Py_ANNOTATE_IGNORE_WRITES_END() \
- AnnotateIgnoreWritesEnd(__FILE__, __LINE__)
-
- /* Start ignoring all memory accesses (reads and writes). */
-#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN() \
- do {\
- _Py_ANNOTATE_IGNORE_READS_BEGIN();\
- _Py_ANNOTATE_IGNORE_WRITES_BEGIN();\
- }while(0)\
-
- /* Stop ignoring all memory accesses. */
-#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END() \
- do {\
- _Py_ANNOTATE_IGNORE_WRITES_END();\
- _Py_ANNOTATE_IGNORE_READS_END();\
- }while(0)\
-
- /* Similar to _Py_ANNOTATE_IGNORE_READS_BEGIN, but ignore synchronization events:
- RWLOCK* and CONDVAR*. */
-#define _Py_ANNOTATE_IGNORE_SYNC_BEGIN() \
- AnnotateIgnoreSyncBegin(__FILE__, __LINE__)
-
- /* Stop ignoring sync events. */
-#define _Py_ANNOTATE_IGNORE_SYNC_END() \
- AnnotateIgnoreSyncEnd(__FILE__, __LINE__)
-
-
- /* Enable (enable!=0) or disable (enable==0) race detection for all threads.
- This annotation could be useful if you want to skip expensive race analysis
- during some period of program execution, e.g. during initialization. */
-#define _Py_ANNOTATE_ENABLE_RACE_DETECTION(enable) \
- AnnotateEnableRaceDetection(__FILE__, __LINE__, enable)
-
- /* -------------------------------------------------------------
- Annotations useful for debugging. */
-
- /* Request to trace every access to "address". */
-#define _Py_ANNOTATE_TRACE_MEMORY(address) \
- AnnotateTraceMemory(__FILE__, __LINE__, address)
-
- /* Report the current thread name to a race detector. */
-#define _Py_ANNOTATE_THREAD_NAME(name) \
- AnnotateThreadName(__FILE__, __LINE__, name)
-
- /* -------------------------------------------------------------
- Annotations useful when implementing locks. They are not
- normally needed by modules that merely use locks.
- The "lock" argument is a pointer to the lock object. */
-
- /* Report that a lock has been created at address "lock". */
-#define _Py_ANNOTATE_RWLOCK_CREATE(lock) \
- AnnotateRWLockCreate(__FILE__, __LINE__, lock)
-
- /* Report that the lock at address "lock" is about to be destroyed. */
-#define _Py_ANNOTATE_RWLOCK_DESTROY(lock) \
- AnnotateRWLockDestroy(__FILE__, __LINE__, lock)
-
- /* Report that the lock at address "lock" has been acquired.
- is_w=1 for writer lock, is_w=0 for reader lock. */
-#define _Py_ANNOTATE_RWLOCK_ACQUIRED(lock, is_w) \
- AnnotateRWLockAcquired(__FILE__, __LINE__, lock, is_w)
-
- /* Report that the lock at address "lock" is about to be released. */
-#define _Py_ANNOTATE_RWLOCK_RELEASED(lock, is_w) \
- AnnotateRWLockReleased(__FILE__, __LINE__, lock, is_w)
-
- /* -------------------------------------------------------------
- Annotations useful when implementing barriers. They are not
- normally needed by modules that merely use barriers.
- The "barrier" argument is a pointer to the barrier object. */
-
- /* Report that the "barrier" has been initialized with initial "count".
- If 'reinitialization_allowed' is true, initialization is allowed to happen
- multiple times w/o calling barrier_destroy() */
-#define _Py_ANNOTATE_BARRIER_INIT(barrier, count, reinitialization_allowed) \
- AnnotateBarrierInit(__FILE__, __LINE__, barrier, count, \
- reinitialization_allowed)
-
- /* Report that we are about to enter barrier_wait("barrier"). */
-#define _Py_ANNOTATE_BARRIER_WAIT_BEFORE(barrier) \
- AnnotateBarrierWaitBefore(__FILE__, __LINE__, barrier)
-
- /* Report that we just exited barrier_wait("barrier"). */
-#define _Py_ANNOTATE_BARRIER_WAIT_AFTER(barrier) \
- AnnotateBarrierWaitAfter(__FILE__, __LINE__, barrier)
-
- /* Report that the "barrier" has been destroyed. */
-#define _Py_ANNOTATE_BARRIER_DESTROY(barrier) \
- AnnotateBarrierDestroy(__FILE__, __LINE__, barrier)
-
- /* -------------------------------------------------------------
- Annotations useful for testing race detectors. */
-
- /* Report that we expect a race on the variable at "address".
- Use only in unit tests for a race detector. */
-#define _Py_ANNOTATE_EXPECT_RACE(address, description) \
- AnnotateExpectRace(__FILE__, __LINE__, address, description)
-
- /* A no-op. Insert where you like to test the interceptors. */
-#define _Py_ANNOTATE_NO_OP(arg) \
- AnnotateNoOp(__FILE__, __LINE__, arg)
-
- /* Force the race detector to flush its state. The actual effect depends on
- * the implementation of the detector. */
-#define _Py_ANNOTATE_FLUSH_STATE() \
- AnnotateFlushState(__FILE__, __LINE__)
-
-
-#else /* DYNAMIC_ANNOTATIONS_ENABLED == 0 */
-
-#define _Py_ANNOTATE_RWLOCK_CREATE(lock) /* empty */
-#define _Py_ANNOTATE_RWLOCK_DESTROY(lock) /* empty */
-#define _Py_ANNOTATE_RWLOCK_ACQUIRED(lock, is_w) /* empty */
-#define _Py_ANNOTATE_RWLOCK_RELEASED(lock, is_w) /* empty */
-#define _Py_ANNOTATE_BARRIER_INIT(barrier, count, reinitialization_allowed) /* */
-#define _Py_ANNOTATE_BARRIER_WAIT_BEFORE(barrier) /* empty */
-#define _Py_ANNOTATE_BARRIER_WAIT_AFTER(barrier) /* empty */
-#define _Py_ANNOTATE_BARRIER_DESTROY(barrier) /* empty */
-#define _Py_ANNOTATE_CONDVAR_LOCK_WAIT(cv, lock) /* empty */
-#define _Py_ANNOTATE_CONDVAR_WAIT(cv) /* empty */
-#define _Py_ANNOTATE_CONDVAR_SIGNAL(cv) /* empty */
-#define _Py_ANNOTATE_CONDVAR_SIGNAL_ALL(cv) /* empty */
-#define _Py_ANNOTATE_HAPPENS_BEFORE(obj) /* empty */
-#define _Py_ANNOTATE_HAPPENS_AFTER(obj) /* empty */
-#define _Py_ANNOTATE_PUBLISH_MEMORY_RANGE(address, size) /* empty */
-#define _Py_ANNOTATE_UNPUBLISH_MEMORY_RANGE(address, size) /* empty */
-#define _Py_ANNOTATE_SWAP_MEMORY_RANGE(address, size) /* empty */
-#define _Py_ANNOTATE_PCQ_CREATE(pcq) /* empty */
-#define _Py_ANNOTATE_PCQ_DESTROY(pcq) /* empty */
-#define _Py_ANNOTATE_PCQ_PUT(pcq) /* empty */
-#define _Py_ANNOTATE_PCQ_GET(pcq) /* empty */
-#define _Py_ANNOTATE_NEW_MEMORY(address, size) /* empty */
-#define _Py_ANNOTATE_EXPECT_RACE(address, description) /* empty */
-#define _Py_ANNOTATE_BENIGN_RACE(address, description) /* empty */
-#define _Py_ANNOTATE_BENIGN_RACE_SIZED(address, size, description) /* empty */
-#define _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(mu) /* empty */
-#define _Py_ANNOTATE_MUTEX_IS_USED_AS_CONDVAR(mu) /* empty */
-#define _Py_ANNOTATE_TRACE_MEMORY(arg) /* empty */
-#define _Py_ANNOTATE_THREAD_NAME(name) /* empty */
-#define _Py_ANNOTATE_IGNORE_READS_BEGIN() /* empty */
-#define _Py_ANNOTATE_IGNORE_READS_END() /* empty */
-#define _Py_ANNOTATE_IGNORE_WRITES_BEGIN() /* empty */
-#define _Py_ANNOTATE_IGNORE_WRITES_END() /* empty */
-#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN() /* empty */
-#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END() /* empty */
-#define _Py_ANNOTATE_IGNORE_SYNC_BEGIN() /* empty */
-#define _Py_ANNOTATE_IGNORE_SYNC_END() /* empty */
-#define _Py_ANNOTATE_ENABLE_RACE_DETECTION(enable) /* empty */
-#define _Py_ANNOTATE_NO_OP(arg) /* empty */
-#define _Py_ANNOTATE_FLUSH_STATE() /* empty */
-
-#endif /* DYNAMIC_ANNOTATIONS_ENABLED */
-
-/* Use the macros above rather than using these functions directly. */
-#ifdef __cplusplus
-extern "C" {
-#endif
-void AnnotateRWLockCreate(const char *file, int line,
- const volatile void *lock);
-void AnnotateRWLockDestroy(const char *file, int line,
- const volatile void *lock);
-void AnnotateRWLockAcquired(const char *file, int line,
- const volatile void *lock, long is_w);
-void AnnotateRWLockReleased(const char *file, int line,
- const volatile void *lock, long is_w);
-void AnnotateBarrierInit(const char *file, int line,
- const volatile void *barrier, long count,
- long reinitialization_allowed);
-void AnnotateBarrierWaitBefore(const char *file, int line,
- const volatile void *barrier);
-void AnnotateBarrierWaitAfter(const char *file, int line,
- const volatile void *barrier);
-void AnnotateBarrierDestroy(const char *file, int line,
- const volatile void *barrier);
-void AnnotateCondVarWait(const char *file, int line,
- const volatile void *cv,
- const volatile void *lock);
-void AnnotateCondVarSignal(const char *file, int line,
- const volatile void *cv);
-void AnnotateCondVarSignalAll(const char *file, int line,
- const volatile void *cv);
-void AnnotatePublishMemoryRange(const char *file, int line,
- const volatile void *address,
- long size);
-void AnnotateUnpublishMemoryRange(const char *file, int line,
- const volatile void *address,
- long size);
-void AnnotatePCQCreate(const char *file, int line,
- const volatile void *pcq);
-void AnnotatePCQDestroy(const char *file, int line,
- const volatile void *pcq);
-void AnnotatePCQPut(const char *file, int line,
- const volatile void *pcq);
-void AnnotatePCQGet(const char *file, int line,
- const volatile void *pcq);
-void AnnotateNewMemory(const char *file, int line,
- const volatile void *address,
- long size);
-void AnnotateExpectRace(const char *file, int line,
- const volatile void *address,
- const char *description);
-void AnnotateBenignRace(const char *file, int line,
- const volatile void *address,
- const char *description);
-void AnnotateBenignRaceSized(const char *file, int line,
- const volatile void *address,
- long size,
- const char *description);
-void AnnotateMutexIsUsedAsCondVar(const char *file, int line,
- const volatile void *mu);
-void AnnotateTraceMemory(const char *file, int line,
- const volatile void *arg);
-void AnnotateThreadName(const char *file, int line,
- const char *name);
-void AnnotateIgnoreReadsBegin(const char *file, int line);
-void AnnotateIgnoreReadsEnd(const char *file, int line);
-void AnnotateIgnoreWritesBegin(const char *file, int line);
-void AnnotateIgnoreWritesEnd(const char *file, int line);
-void AnnotateEnableRaceDetection(const char *file, int line, int enable);
-void AnnotateNoOp(const char *file, int line,
- const volatile void *arg);
-void AnnotateFlushState(const char *file, int line);
-
-/* Return non-zero value if running under valgrind.
-
- If "valgrind.h" is included into dynamic_annotations.c,
- the regular valgrind mechanism will be used.
- See http://valgrind.org/docs/manual/manual-core-adv.html about
- RUNNING_ON_VALGRIND and other valgrind "client requests".
- The file "valgrind.h" may be obtained by doing
- svn co svn://svn.valgrind.org/valgrind/trunk/include
-
- If for some reason you can't use "valgrind.h" or want to fake valgrind,
- there are two ways to make this function return non-zero:
- - Use environment variable: export RUNNING_ON_VALGRIND=1
- - Make your tool intercept the function RunningOnValgrind() and
- change its return value.
- */
-int RunningOnValgrind(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#if DYNAMIC_ANNOTATIONS_ENABLED != 0 && defined(__cplusplus)
-
- /* _Py_ANNOTATE_UNPROTECTED_READ is the preferred way to annotate racey reads.
-
- Instead of doing
- _Py_ANNOTATE_IGNORE_READS_BEGIN();
- ... = x;
- _Py_ANNOTATE_IGNORE_READS_END();
- one can use
- ... = _Py_ANNOTATE_UNPROTECTED_READ(x); */
- template
- inline T _Py_ANNOTATE_UNPROTECTED_READ(const volatile T &x) {
- _Py_ANNOTATE_IGNORE_READS_BEGIN();
- T res = x;
- _Py_ANNOTATE_IGNORE_READS_END();
- return res;
- }
- /* Apply _Py_ANNOTATE_BENIGN_RACE_SIZED to a static variable. */
-#define _Py_ANNOTATE_BENIGN_RACE_STATIC(static_var, description) \
- namespace { \
- class static_var ## _annotator { \
- public: \
- static_var ## _annotator() { \
- _Py_ANNOTATE_BENIGN_RACE_SIZED(&static_var, \
- sizeof(static_var), \
- # static_var ": " description); \
- } \
- }; \
- static static_var ## _annotator the ## static_var ## _annotator;\
- }
-#else /* DYNAMIC_ANNOTATIONS_ENABLED == 0 */
-
-#define _Py_ANNOTATE_UNPROTECTED_READ(x) (x)
-#define _Py_ANNOTATE_BENIGN_RACE_STATIC(static_var, description) /* empty */
-
-#endif /* DYNAMIC_ANNOTATIONS_ENABLED */
-
-#endif /* __DYNAMIC_ANNOTATIONS_H__ */
diff --git a/EasyTrans/Include/enumobject.h b/EasyTrans/Include/enumobject.h
deleted file mode 100644
index c14dbfc8..00000000
--- a/EasyTrans/Include/enumobject.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef Py_ENUMOBJECT_H
-#define Py_ENUMOBJECT_H
-
-/* Enumerate Object */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_DATA(PyTypeObject) PyEnum_Type;
-PyAPI_DATA(PyTypeObject) PyReversed_Type;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !Py_ENUMOBJECT_H */
diff --git a/EasyTrans/Include/errcode.h b/EasyTrans/Include/errcode.h
deleted file mode 100644
index b37cd261..00000000
--- a/EasyTrans/Include/errcode.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef Py_ERRCODE_H
-#define Py_ERRCODE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Error codes passed around between file input, tokenizer, parser and
- interpreter. This is necessary so we can turn them into Python
- exceptions at a higher level. Note that some errors have a
- slightly different meaning when passed from the tokenizer to the
- parser than when passed from the parser to the interpreter; e.g.
- the parser only returns E_EOF when it hits EOF immediately, and it
- never returns E_OK. */
-
-#define E_OK 10 /* No error */
-#define E_EOF 11 /* End Of File */
-#define E_INTR 12 /* Interrupted */
-#define E_TOKEN 13 /* Bad token */
-#define E_SYNTAX 14 /* Syntax error */
-#define E_NOMEM 15 /* Ran out of memory */
-#define E_DONE 16 /* Parsing complete */
-#define E_ERROR 17 /* Execution error */
-#define E_TABSPACE 18 /* Inconsistent mixing of tabs and spaces */
-#define E_OVERFLOW 19 /* Node had too many children */
-#define E_TOODEEP 20 /* Too many indentation levels */
-#define E_DEDENT 21 /* No matching outer block for dedent */
-#define E_DECODE 22 /* Error in decoding into Unicode */
-#define E_EOFS 23 /* EOF in triple-quoted string */
-#define E_EOLS 24 /* EOL in single-quoted string */
-#define E_LINECONT 25 /* Unexpected characters after a line continuation */
-#define E_IDENTIFIER 26 /* Invalid characters in identifier */
-#define E_BADSINGLE 27 /* Ill-formed single statement input */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_ERRCODE_H */
diff --git a/EasyTrans/Include/eval.h b/EasyTrans/Include/eval.h
deleted file mode 100644
index 2c1c2d05..00000000
--- a/EasyTrans/Include/eval.h
+++ /dev/null
@@ -1,37 +0,0 @@
-
-/* Interface to execute compiled code */
-
-#ifndef Py_EVAL_H
-#define Py_EVAL_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(PyObject *) PyEval_EvalCode(PyObject *, PyObject *, PyObject *);
-
-PyAPI_FUNC(PyObject *) PyEval_EvalCodeEx(PyObject *co,
- PyObject *globals,
- PyObject *locals,
- PyObject *const *args, int argc,
- PyObject *const *kwds, int kwdc,
- PyObject *const *defs, int defc,
- PyObject *kwdefs, PyObject *closure);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyEval_EvalCodeWithName(
- PyObject *co,
- PyObject *globals, PyObject *locals,
- PyObject *const *args, Py_ssize_t argcount,
- PyObject *const *kwnames, PyObject *const *kwargs,
- Py_ssize_t kwcount, int kwstep,
- PyObject *const *defs, Py_ssize_t defcount,
- PyObject *kwdefs, PyObject *closure,
- PyObject *name, PyObject *qualname);
-
-PyAPI_FUNC(PyObject *) _PyEval_CallTracing(PyObject *func, PyObject *args);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_EVAL_H */
diff --git a/EasyTrans/Include/fileobject.h b/EasyTrans/Include/fileobject.h
deleted file mode 100644
index 89e8dd6a..00000000
--- a/EasyTrans/Include/fileobject.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* File object interface (what's left of it -- see io.py) */
-
-#ifndef Py_FILEOBJECT_H
-#define Py_FILEOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define PY_STDIOTEXTMODE "b"
-
-PyAPI_FUNC(PyObject *) PyFile_FromFd(int, const char *, const char *, int,
- const char *, const char *,
- const char *, int);
-PyAPI_FUNC(PyObject *) PyFile_GetLine(PyObject *, int);
-PyAPI_FUNC(int) PyFile_WriteObject(PyObject *, PyObject *, int);
-PyAPI_FUNC(int) PyFile_WriteString(const char *, PyObject *);
-PyAPI_FUNC(int) PyObject_AsFileDescriptor(PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(char *) Py_UniversalNewlineFgets(char *, int, FILE*, PyObject *);
-#endif
-
-/* The default encoding used by the platform file system APIs
- If non-NULL, this is different than the default encoding for strings
-*/
-PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding;
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000
-PyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors;
-#endif
-PyAPI_DATA(int) Py_HasFileSystemDefaultEncoding;
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000
-PyAPI_DATA(int) Py_UTF8Mode;
-#endif
-
-/* Internal API
-
- The std printer acts as a preliminary sys.stderr until the new io
- infrastructure is in place. */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) PyFile_NewStdPrinter(int);
-PyAPI_DATA(PyTypeObject) PyStdPrinter_Type;
-#endif /* Py_LIMITED_API */
-
-/* A routine to check if a file descriptor can be select()-ed. */
-#ifdef _MSC_VER
- /* On Windows, any socket fd can be select()-ed, no matter how high */
- #define _PyIsSelectable_fd(FD) (1)
-#else
- #define _PyIsSelectable_fd(FD) ((unsigned int)(FD) < (unsigned int)FD_SETSIZE)
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_FILEOBJECT_H */
diff --git a/EasyTrans/Include/fileutils.h b/EasyTrans/Include/fileutils.h
deleted file mode 100644
index 419d49ab..00000000
--- a/EasyTrans/Include/fileutils.h
+++ /dev/null
@@ -1,201 +0,0 @@
-#ifndef Py_FILEUTILS_H
-#define Py_FILEUTILS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-PyAPI_FUNC(wchar_t *) Py_DecodeLocale(
- const char *arg,
- size_t *size);
-
-PyAPI_FUNC(char*) Py_EncodeLocale(
- const wchar_t *text,
- size_t *error_pos);
-
-PyAPI_FUNC(char*) _Py_EncodeLocaleRaw(
- const wchar_t *text,
- size_t *error_pos);
-#endif
-
-#ifdef Py_BUILD_CORE
-PyAPI_FUNC(int) _Py_DecodeUTF8Ex(
- const char *arg,
- Py_ssize_t arglen,
- wchar_t **wstr,
- size_t *wlen,
- const char **reason,
- int surrogateescape);
-
-PyAPI_FUNC(int) _Py_EncodeUTF8Ex(
- const wchar_t *text,
- char **str,
- size_t *error_pos,
- const char **reason,
- int raw_malloc,
- int surrogateescape);
-
-PyAPI_FUNC(wchar_t*) _Py_DecodeUTF8_surrogateescape(
- const char *arg,
- Py_ssize_t arglen);
-
-PyAPI_FUNC(int) _Py_DecodeLocaleEx(
- const char *arg,
- wchar_t **wstr,
- size_t *wlen,
- const char **reason,
- int current_locale,
- int surrogateescape);
-
-PyAPI_FUNC(int) _Py_EncodeLocaleEx(
- const wchar_t *text,
- char **str,
- size_t *error_pos,
- const char **reason,
- int current_locale,
- int surrogateescape);
-#endif
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _Py_device_encoding(int);
-
-#if defined(MS_WINDOWS) || defined(__APPLE__)
- /* On Windows, the count parameter of read() is an int (bpo-9015, bpo-9611).
- On macOS 10.13, read() and write() with more than INT_MAX bytes
- fail with EINVAL (bpo-24658). */
-# define _PY_READ_MAX INT_MAX
-# define _PY_WRITE_MAX INT_MAX
-#else
- /* write() should truncate the input to PY_SSIZE_T_MAX bytes,
- but it's safer to do it ourself to have a portable behaviour */
-# define _PY_READ_MAX PY_SSIZE_T_MAX
-# define _PY_WRITE_MAX PY_SSIZE_T_MAX
-#endif
-
-#ifdef MS_WINDOWS
-struct _Py_stat_struct {
- unsigned long st_dev;
- uint64_t st_ino;
- unsigned short st_mode;
- int st_nlink;
- int st_uid;
- int st_gid;
- unsigned long st_rdev;
- __int64 st_size;
- time_t st_atime;
- int st_atime_nsec;
- time_t st_mtime;
- int st_mtime_nsec;
- time_t st_ctime;
- int st_ctime_nsec;
- unsigned long st_file_attributes;
-};
-#else
-# define _Py_stat_struct stat
-#endif
-
-PyAPI_FUNC(int) _Py_fstat(
- int fd,
- struct _Py_stat_struct *status);
-
-PyAPI_FUNC(int) _Py_fstat_noraise(
- int fd,
- struct _Py_stat_struct *status);
-
-PyAPI_FUNC(int) _Py_stat(
- PyObject *path,
- struct stat *status);
-
-PyAPI_FUNC(int) _Py_open(
- const char *pathname,
- int flags);
-
-PyAPI_FUNC(int) _Py_open_noraise(
- const char *pathname,
- int flags);
-
-PyAPI_FUNC(FILE *) _Py_wfopen(
- const wchar_t *path,
- const wchar_t *mode);
-
-PyAPI_FUNC(FILE*) _Py_fopen(
- const char *pathname,
- const char *mode);
-
-PyAPI_FUNC(FILE*) _Py_fopen_obj(
- PyObject *path,
- const char *mode);
-
-PyAPI_FUNC(Py_ssize_t) _Py_read(
- int fd,
- void *buf,
- size_t count);
-
-PyAPI_FUNC(Py_ssize_t) _Py_write(
- int fd,
- const void *buf,
- size_t count);
-
-PyAPI_FUNC(Py_ssize_t) _Py_write_noraise(
- int fd,
- const void *buf,
- size_t count);
-
-#ifdef HAVE_READLINK
-PyAPI_FUNC(int) _Py_wreadlink(
- const wchar_t *path,
- wchar_t *buf,
- size_t bufsiz);
-#endif
-
-#ifdef HAVE_REALPATH
-PyAPI_FUNC(wchar_t*) _Py_wrealpath(
- const wchar_t *path,
- wchar_t *resolved_path,
- size_t resolved_path_size);
-#endif
-
-PyAPI_FUNC(wchar_t*) _Py_wgetcwd(
- wchar_t *buf,
- size_t size);
-
-PyAPI_FUNC(int) _Py_get_inheritable(int fd);
-
-PyAPI_FUNC(int) _Py_set_inheritable(int fd, int inheritable,
- int *atomic_flag_works);
-
-PyAPI_FUNC(int) _Py_set_inheritable_async_safe(int fd, int inheritable,
- int *atomic_flag_works);
-
-PyAPI_FUNC(int) _Py_dup(int fd);
-
-#ifndef MS_WINDOWS
-PyAPI_FUNC(int) _Py_get_blocking(int fd);
-
-PyAPI_FUNC(int) _Py_set_blocking(int fd, int blocking);
-#endif /* !MS_WINDOWS */
-
-PyAPI_FUNC(int) _Py_GetLocaleconvNumeric(
- PyObject **decimal_point,
- PyObject **thousands_sep,
- const char **grouping);
-
-#endif /* Py_LIMITED_API */
-
-#ifdef Py_BUILD_CORE
-PyAPI_FUNC(int) _Py_GetForceASCII(void);
-
-/* Reset "force ASCII" mode (if it was initialized).
-
- This function should be called when Python changes the LC_CTYPE locale,
- so the "force ASCII" mode can be detected again on the new locale
- encoding. */
-PyAPI_FUNC(void) _Py_ResetForceASCII(void);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !Py_FILEUTILS_H */
diff --git a/EasyTrans/Include/floatobject.h b/EasyTrans/Include/floatobject.h
deleted file mode 100644
index f1044d64..00000000
--- a/EasyTrans/Include/floatobject.h
+++ /dev/null
@@ -1,130 +0,0 @@
-
-/* Float object interface */
-
-/*
-PyFloatObject represents a (double precision) floating point number.
-*/
-
-#ifndef Py_FLOATOBJECT_H
-#define Py_FLOATOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-typedef struct {
- PyObject_HEAD
- double ob_fval;
-} PyFloatObject;
-#endif
-
-PyAPI_DATA(PyTypeObject) PyFloat_Type;
-
-#define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type)
-#define PyFloat_CheckExact(op) (Py_TYPE(op) == &PyFloat_Type)
-
-#ifdef Py_NAN
-#define Py_RETURN_NAN return PyFloat_FromDouble(Py_NAN)
-#endif
-
-#define Py_RETURN_INF(sign) do \
- if (copysign(1., sign) == 1.) { \
- return PyFloat_FromDouble(Py_HUGE_VAL); \
- } else { \
- return PyFloat_FromDouble(-Py_HUGE_VAL); \
- } while(0)
-
-PyAPI_FUNC(double) PyFloat_GetMax(void);
-PyAPI_FUNC(double) PyFloat_GetMin(void);
-PyAPI_FUNC(PyObject *) PyFloat_GetInfo(void);
-
-/* Return Python float from string PyObject. */
-PyAPI_FUNC(PyObject *) PyFloat_FromString(PyObject*);
-
-/* Return Python float from C double. */
-PyAPI_FUNC(PyObject *) PyFloat_FromDouble(double);
-
-/* Extract C double from Python float. The macro version trades safety for
- speed. */
-PyAPI_FUNC(double) PyFloat_AsDouble(PyObject *);
-#ifndef Py_LIMITED_API
-#define PyFloat_AS_DOUBLE(op) (((PyFloatObject *)(op))->ob_fval)
-#endif
-
-#ifndef Py_LIMITED_API
-/* _PyFloat_{Pack,Unpack}{4,8}
- *
- * The struct and pickle (at least) modules need an efficient platform-
- * independent way to store floating-point values as byte strings.
- * The Pack routines produce a string from a C double, and the Unpack
- * routines produce a C double from such a string. The suffix (4 or 8)
- * specifies the number of bytes in the string.
- *
- * On platforms that appear to use (see _PyFloat_Init()) IEEE-754 formats
- * these functions work by copying bits. On other platforms, the formats the
- * 4- byte format is identical to the IEEE-754 single precision format, and
- * the 8-byte format to the IEEE-754 double precision format, although the
- * packing of INFs and NaNs (if such things exist on the platform) isn't
- * handled correctly, and attempting to unpack a string containing an IEEE
- * INF or NaN will raise an exception.
- *
- * On non-IEEE platforms with more precision, or larger dynamic range, than
- * 754 supports, not all values can be packed; on non-IEEE platforms with less
- * precision, or smaller dynamic range, not all values can be unpacked. What
- * happens in such cases is partly accidental (alas).
- */
-
-/* The pack routines write 2, 4 or 8 bytes, starting at p. le is a bool
- * argument, true if you want the string in little-endian format (exponent
- * last, at p+1, p+3 or p+7), false if you want big-endian format (exponent
- * first, at p).
- * Return value: 0 if all is OK, -1 if error (and an exception is
- * set, most likely OverflowError).
- * There are two problems on non-IEEE platforms:
- * 1): What this does is undefined if x is a NaN or infinity.
- * 2): -0.0 and +0.0 produce the same string.
- */
-PyAPI_FUNC(int) _PyFloat_Pack2(double x, unsigned char *p, int le);
-PyAPI_FUNC(int) _PyFloat_Pack4(double x, unsigned char *p, int le);
-PyAPI_FUNC(int) _PyFloat_Pack8(double x, unsigned char *p, int le);
-
-/* Needed for the old way for marshal to store a floating point number.
- Returns the string length copied into p, -1 on error.
- */
-PyAPI_FUNC(int) _PyFloat_Repr(double x, char *p, size_t len);
-
-/* Used to get the important decimal digits of a double */
-PyAPI_FUNC(int) _PyFloat_Digits(char *buf, double v, int *signum);
-PyAPI_FUNC(void) _PyFloat_DigitsInit(void);
-
-/* The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool
- * argument, true if the string is in little-endian format (exponent
- * last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).
- * Return value: The unpacked double. On error, this is -1.0 and
- * PyErr_Occurred() is true (and an exception is set, most likely
- * OverflowError). Note that on a non-IEEE platform this will refuse
- * to unpack a string that represents a NaN or infinity.
- */
-PyAPI_FUNC(double) _PyFloat_Unpack2(const unsigned char *p, int le);
-PyAPI_FUNC(double) _PyFloat_Unpack4(const unsigned char *p, int le);
-PyAPI_FUNC(double) _PyFloat_Unpack8(const unsigned char *p, int le);
-
-/* free list api */
-PyAPI_FUNC(int) PyFloat_ClearFreeList(void);
-
-PyAPI_FUNC(void) _PyFloat_DebugMallocStats(FILE* out);
-
-/* Format the object based on the format_spec, as defined in PEP 3101
- (Advanced String Formatting). */
-PyAPI_FUNC(int) _PyFloat_FormatAdvancedWriter(
- _PyUnicodeWriter *writer,
- PyObject *obj,
- PyObject *format_spec,
- Py_ssize_t start,
- Py_ssize_t end);
-#endif /* Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_FLOATOBJECT_H */
diff --git a/EasyTrans/Include/frameobject.h b/EasyTrans/Include/frameobject.h
deleted file mode 100644
index a95baf88..00000000
--- a/EasyTrans/Include/frameobject.h
+++ /dev/null
@@ -1,93 +0,0 @@
-
-/* Frame object interface */
-
-#ifndef Py_LIMITED_API
-#ifndef Py_FRAMEOBJECT_H
-#define Py_FRAMEOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct {
- int b_type; /* what kind of block this is */
- int b_handler; /* where to jump to find handler */
- int b_level; /* value stack level to pop to */
-} PyTryBlock;
-
-typedef struct _frame {
- PyObject_VAR_HEAD
- struct _frame *f_back; /* previous frame, or NULL */
- PyCodeObject *f_code; /* code segment */
- PyObject *f_builtins; /* builtin symbol table (PyDictObject) */
- PyObject *f_globals; /* global symbol table (PyDictObject) */
- PyObject *f_locals; /* local symbol table (any mapping) */
- PyObject **f_valuestack; /* points after the last local */
- /* Next free slot in f_valuestack. Frame creation sets to f_valuestack.
- Frame evaluation usually NULLs it, but a frame that yields sets it
- to the current stack top. */
- PyObject **f_stacktop;
- PyObject *f_trace; /* Trace function */
- char f_trace_lines; /* Emit per-line trace events? */
- char f_trace_opcodes; /* Emit per-opcode trace events? */
-
- /* Borrowed reference to a generator, or NULL */
- PyObject *f_gen;
-
- int f_lasti; /* Last instruction if called */
- /* Call PyFrame_GetLineNumber() instead of reading this field
- directly. As of 2.3 f_lineno is only valid when tracing is
- active (i.e. when f_trace is set). At other times we use
- PyCode_Addr2Line to calculate the line from the current
- bytecode index. */
- int f_lineno; /* Current line number */
- int f_iblock; /* index in f_blockstack */
- char f_executing; /* whether the frame is still executing */
- PyTryBlock f_blockstack[CO_MAXBLOCKS]; /* for try and loop blocks */
- PyObject *f_localsplus[1]; /* locals+stack, dynamically sized */
-} PyFrameObject;
-
-
-/* Standard object interface */
-
-PyAPI_DATA(PyTypeObject) PyFrame_Type;
-
-#define PyFrame_Check(op) (Py_TYPE(op) == &PyFrame_Type)
-
-PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *,
- PyObject *, PyObject *);
-
-/* only internal use */
-PyFrameObject* _PyFrame_New_NoTrack(PyThreadState *, PyCodeObject *,
- PyObject *, PyObject *);
-
-
-/* The rest of the interface is specific for frame objects */
-
-/* Block management functions */
-
-PyAPI_FUNC(void) PyFrame_BlockSetup(PyFrameObject *, int, int, int);
-PyAPI_FUNC(PyTryBlock *) PyFrame_BlockPop(PyFrameObject *);
-
-/* Extend the value stack */
-
-PyAPI_FUNC(PyObject **) PyFrame_ExtendStack(PyFrameObject *, int, int);
-
-/* Conversions between "fast locals" and locals in dictionary */
-
-PyAPI_FUNC(void) PyFrame_LocalsToFast(PyFrameObject *, int);
-
-PyAPI_FUNC(int) PyFrame_FastToLocalsWithError(PyFrameObject *f);
-PyAPI_FUNC(void) PyFrame_FastToLocals(PyFrameObject *);
-
-PyAPI_FUNC(int) PyFrame_ClearFreeList(void);
-
-PyAPI_FUNC(void) _PyFrame_DebugMallocStats(FILE *out);
-
-/* Return the line of code the frame is currently executing. */
-PyAPI_FUNC(int) PyFrame_GetLineNumber(PyFrameObject *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_FRAMEOBJECT_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/funcobject.h b/EasyTrans/Include/funcobject.h
deleted file mode 100644
index 86674ac9..00000000
--- a/EasyTrans/Include/funcobject.h
+++ /dev/null
@@ -1,103 +0,0 @@
-
-/* Function object interface */
-#ifndef Py_LIMITED_API
-#ifndef Py_FUNCOBJECT_H
-#define Py_FUNCOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Function objects and code objects should not be confused with each other:
- *
- * Function objects are created by the execution of the 'def' statement.
- * They reference a code object in their __code__ attribute, which is a
- * purely syntactic object, i.e. nothing more than a compiled version of some
- * source code lines. There is one code object per source code "fragment",
- * but each code object can be referenced by zero or many function objects
- * depending only on how many times the 'def' statement in the source was
- * executed so far.
- */
-
-typedef struct {
- PyObject_HEAD
- PyObject *func_code; /* A code object, the __code__ attribute */
- PyObject *func_globals; /* A dictionary (other mappings won't do) */
- PyObject *func_defaults; /* NULL or a tuple */
- PyObject *func_kwdefaults; /* NULL or a dict */
- PyObject *func_closure; /* NULL or a tuple of cell objects */
- PyObject *func_doc; /* The __doc__ attribute, can be anything */
- PyObject *func_name; /* The __name__ attribute, a string object */
- PyObject *func_dict; /* The __dict__ attribute, a dict or NULL */
- PyObject *func_weakreflist; /* List of weak references */
- PyObject *func_module; /* The __module__ attribute, can be anything */
- PyObject *func_annotations; /* Annotations, a dict or NULL */
- PyObject *func_qualname; /* The qualified name */
-
- /* Invariant:
- * func_closure contains the bindings for func_code->co_freevars, so
- * PyTuple_Size(func_closure) == PyCode_GetNumFree(func_code)
- * (func_closure may be NULL if PyCode_GetNumFree(func_code) == 0).
- */
-} PyFunctionObject;
-
-PyAPI_DATA(PyTypeObject) PyFunction_Type;
-
-#define PyFunction_Check(op) (Py_TYPE(op) == &PyFunction_Type)
-
-PyAPI_FUNC(PyObject *) PyFunction_New(PyObject *, PyObject *);
-PyAPI_FUNC(PyObject *) PyFunction_NewWithQualName(PyObject *, PyObject *, PyObject *);
-PyAPI_FUNC(PyObject *) PyFunction_GetCode(PyObject *);
-PyAPI_FUNC(PyObject *) PyFunction_GetGlobals(PyObject *);
-PyAPI_FUNC(PyObject *) PyFunction_GetModule(PyObject *);
-PyAPI_FUNC(PyObject *) PyFunction_GetDefaults(PyObject *);
-PyAPI_FUNC(int) PyFunction_SetDefaults(PyObject *, PyObject *);
-PyAPI_FUNC(PyObject *) PyFunction_GetKwDefaults(PyObject *);
-PyAPI_FUNC(int) PyFunction_SetKwDefaults(PyObject *, PyObject *);
-PyAPI_FUNC(PyObject *) PyFunction_GetClosure(PyObject *);
-PyAPI_FUNC(int) PyFunction_SetClosure(PyObject *, PyObject *);
-PyAPI_FUNC(PyObject *) PyFunction_GetAnnotations(PyObject *);
-PyAPI_FUNC(int) PyFunction_SetAnnotations(PyObject *, PyObject *);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyFunction_FastCallDict(
- PyObject *func,
- PyObject *const *args,
- Py_ssize_t nargs,
- PyObject *kwargs);
-
-PyAPI_FUNC(PyObject *) _PyFunction_FastCallKeywords(
- PyObject *func,
- PyObject *const *stack,
- Py_ssize_t nargs,
- PyObject *kwnames);
-#endif
-
-/* Macros for direct access to these values. Type checks are *not*
- done, so use with care. */
-#define PyFunction_GET_CODE(func) \
- (((PyFunctionObject *)func) -> func_code)
-#define PyFunction_GET_GLOBALS(func) \
- (((PyFunctionObject *)func) -> func_globals)
-#define PyFunction_GET_MODULE(func) \
- (((PyFunctionObject *)func) -> func_module)
-#define PyFunction_GET_DEFAULTS(func) \
- (((PyFunctionObject *)func) -> func_defaults)
-#define PyFunction_GET_KW_DEFAULTS(func) \
- (((PyFunctionObject *)func) -> func_kwdefaults)
-#define PyFunction_GET_CLOSURE(func) \
- (((PyFunctionObject *)func) -> func_closure)
-#define PyFunction_GET_ANNOTATIONS(func) \
- (((PyFunctionObject *)func) -> func_annotations)
-
-/* The classmethod and staticmethod types lives here, too */
-PyAPI_DATA(PyTypeObject) PyClassMethod_Type;
-PyAPI_DATA(PyTypeObject) PyStaticMethod_Type;
-
-PyAPI_FUNC(PyObject *) PyClassMethod_New(PyObject *);
-PyAPI_FUNC(PyObject *) PyStaticMethod_New(PyObject *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_FUNCOBJECT_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/genobject.h b/EasyTrans/Include/genobject.h
deleted file mode 100644
index 16b98333..00000000
--- a/EasyTrans/Include/genobject.h
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/* Generator object interface */
-
-#ifndef Py_LIMITED_API
-#ifndef Py_GENOBJECT_H
-#define Py_GENOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct _frame; /* Avoid including frameobject.h */
-
-/* _PyGenObject_HEAD defines the initial segment of generator
- and coroutine objects. */
-#define _PyGenObject_HEAD(prefix) \
- PyObject_HEAD \
- /* Note: gi_frame can be NULL if the generator is "finished" */ \
- struct _frame *prefix##_frame; \
- /* True if generator is being executed. */ \
- char prefix##_running; \
- /* The code object backing the generator */ \
- PyObject *prefix##_code; \
- /* List of weak reference. */ \
- PyObject *prefix##_weakreflist; \
- /* Name of the generator. */ \
- PyObject *prefix##_name; \
- /* Qualified name of the generator. */ \
- PyObject *prefix##_qualname; \
- _PyErr_StackItem prefix##_exc_state;
-
-typedef struct {
- /* The gi_ prefix is intended to remind of generator-iterator. */
- _PyGenObject_HEAD(gi)
-} PyGenObject;
-
-PyAPI_DATA(PyTypeObject) PyGen_Type;
-
-#define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type)
-#define PyGen_CheckExact(op) (Py_TYPE(op) == &PyGen_Type)
-
-PyAPI_FUNC(PyObject *) PyGen_New(struct _frame *);
-PyAPI_FUNC(PyObject *) PyGen_NewWithQualName(struct _frame *,
- PyObject *name, PyObject *qualname);
-PyAPI_FUNC(int) PyGen_NeedsFinalizing(PyGenObject *);
-PyAPI_FUNC(int) _PyGen_SetStopIterationValue(PyObject *);
-PyAPI_FUNC(int) _PyGen_FetchStopIterationValue(PyObject **);
-PyAPI_FUNC(PyObject *) _PyGen_Send(PyGenObject *, PyObject *);
-PyObject *_PyGen_yf(PyGenObject *);
-PyAPI_FUNC(void) _PyGen_Finalize(PyObject *self);
-
-#ifndef Py_LIMITED_API
-typedef struct {
- _PyGenObject_HEAD(cr)
- PyObject *cr_origin;
-} PyCoroObject;
-
-PyAPI_DATA(PyTypeObject) PyCoro_Type;
-PyAPI_DATA(PyTypeObject) _PyCoroWrapper_Type;
-
-PyAPI_DATA(PyTypeObject) _PyAIterWrapper_Type;
-
-#define PyCoro_CheckExact(op) (Py_TYPE(op) == &PyCoro_Type)
-PyObject *_PyCoro_GetAwaitableIter(PyObject *o);
-PyAPI_FUNC(PyObject *) PyCoro_New(struct _frame *,
- PyObject *name, PyObject *qualname);
-
-/* Asynchronous Generators */
-
-typedef struct {
- _PyGenObject_HEAD(ag)
- PyObject *ag_finalizer;
-
- /* Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks
- were called on the generator, to avoid calling them more
- than once. */
- int ag_hooks_inited;
-
- /* Flag is set to 1 when aclose() is called for the first time, or
- when a StopAsyncIteration exception is raised. */
- int ag_closed;
-} PyAsyncGenObject;
-
-PyAPI_DATA(PyTypeObject) PyAsyncGen_Type;
-PyAPI_DATA(PyTypeObject) _PyAsyncGenASend_Type;
-PyAPI_DATA(PyTypeObject) _PyAsyncGenWrappedValue_Type;
-PyAPI_DATA(PyTypeObject) _PyAsyncGenAThrow_Type;
-
-PyAPI_FUNC(PyObject *) PyAsyncGen_New(struct _frame *,
- PyObject *name, PyObject *qualname);
-
-#define PyAsyncGen_CheckExact(op) (Py_TYPE(op) == &PyAsyncGen_Type)
-
-PyObject *_PyAsyncGenValueWrapperNew(PyObject *);
-
-int PyAsyncGen_ClearFreeLists(void);
-
-#endif
-
-#undef _PyGenObject_HEAD
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_GENOBJECT_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/graminit.h b/EasyTrans/Include/graminit.h
deleted file mode 100644
index bdfe821a..00000000
--- a/EasyTrans/Include/graminit.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Generated by Parser/pgen */
-
-#define single_input 256
-#define file_input 257
-#define eval_input 258
-#define decorator 259
-#define decorators 260
-#define decorated 261
-#define async_funcdef 262
-#define funcdef 263
-#define parameters 264
-#define typedargslist 265
-#define tfpdef 266
-#define varargslist 267
-#define vfpdef 268
-#define stmt 269
-#define simple_stmt 270
-#define small_stmt 271
-#define expr_stmt 272
-#define annassign 273
-#define testlist_star_expr 274
-#define augassign 275
-#define del_stmt 276
-#define pass_stmt 277
-#define flow_stmt 278
-#define break_stmt 279
-#define continue_stmt 280
-#define return_stmt 281
-#define yield_stmt 282
-#define raise_stmt 283
-#define import_stmt 284
-#define import_name 285
-#define import_from 286
-#define import_as_name 287
-#define dotted_as_name 288
-#define import_as_names 289
-#define dotted_as_names 290
-#define dotted_name 291
-#define global_stmt 292
-#define nonlocal_stmt 293
-#define assert_stmt 294
-#define compound_stmt 295
-#define async_stmt 296
-#define if_stmt 297
-#define while_stmt 298
-#define for_stmt 299
-#define try_stmt 300
-#define with_stmt 301
-#define with_item 302
-#define except_clause 303
-#define suite 304
-#define test 305
-#define test_nocond 306
-#define lambdef 307
-#define lambdef_nocond 308
-#define or_test 309
-#define and_test 310
-#define not_test 311
-#define comparison 312
-#define comp_op 313
-#define star_expr 314
-#define expr 315
-#define xor_expr 316
-#define and_expr 317
-#define shift_expr 318
-#define arith_expr 319
-#define term 320
-#define factor 321
-#define power 322
-#define atom_expr 323
-#define atom 324
-#define testlist_comp 325
-#define trailer 326
-#define subscriptlist 327
-#define subscript 328
-#define sliceop 329
-#define exprlist 330
-#define testlist 331
-#define dictorsetmaker 332
-#define classdef 333
-#define arglist 334
-#define argument 335
-#define comp_iter 336
-#define sync_comp_for 337
-#define comp_for 338
-#define comp_if 339
-#define encoding_decl 340
-#define yield_expr 341
-#define yield_arg 342
diff --git a/EasyTrans/Include/grammar.h b/EasyTrans/Include/grammar.h
deleted file mode 100644
index e1703f4b..00000000
--- a/EasyTrans/Include/grammar.h
+++ /dev/null
@@ -1,94 +0,0 @@
-
-/* Grammar interface */
-
-#ifndef Py_GRAMMAR_H
-#define Py_GRAMMAR_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "bitset.h" /* Sigh... */
-
-/* A label of an arc */
-
-typedef struct {
- int lb_type;
- char *lb_str;
-} label;
-
-#define EMPTY 0 /* Label number 0 is by definition the empty label */
-
-/* A list of labels */
-
-typedef struct {
- int ll_nlabels;
- label *ll_label;
-} labellist;
-
-/* An arc from one state to another */
-
-typedef struct {
- short a_lbl; /* Label of this arc */
- short a_arrow; /* State where this arc goes to */
-} arc;
-
-/* A state in a DFA */
-
-typedef struct {
- int s_narcs;
- arc *s_arc; /* Array of arcs */
-
- /* Optional accelerators */
- int s_lower; /* Lowest label index */
- int s_upper; /* Highest label index */
- int *s_accel; /* Accelerator */
- int s_accept; /* Nonzero for accepting state */
-} state;
-
-/* A DFA */
-
-typedef struct {
- int d_type; /* Non-terminal this represents */
- char *d_name; /* For printing */
- int d_initial; /* Initial state */
- int d_nstates;
- state *d_state; /* Array of states */
- bitset d_first;
-} dfa;
-
-/* A grammar */
-
-typedef struct {
- int g_ndfas;
- dfa *g_dfa; /* Array of DFAs */
- labellist g_ll;
- int g_start; /* Start symbol of the grammar */
- int g_accel; /* Set if accelerators present */
-} grammar;
-
-/* FUNCTIONS */
-
-grammar *newgrammar(int start);
-void freegrammar(grammar *g);
-dfa *adddfa(grammar *g, int type, const char *name);
-int addstate(dfa *d);
-void addarc(dfa *d, int from, int to, int lbl);
-dfa *PyGrammar_FindDFA(grammar *g, int type);
-
-int addlabel(labellist *ll, int type, const char *str);
-int findlabel(labellist *ll, int type, const char *str);
-const char *PyGrammar_LabelRepr(label *lb);
-void translatelabels(grammar *g);
-
-void addfirstsets(grammar *g);
-
-void PyGrammar_AddAccelerators(grammar *g);
-void PyGrammar_RemoveAccelerators(grammar *);
-
-void printgrammar(grammar *g, FILE *fp);
-void printnonterminals(grammar *g, FILE *fp);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_GRAMMAR_H */
diff --git a/EasyTrans/Include/greenlet/greenlet.h b/EasyTrans/Include/greenlet/greenlet.h
deleted file mode 100644
index 8fff3f5c..00000000
--- a/EasyTrans/Include/greenlet/greenlet.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/* vim:set noet ts=8 sw=8 : */
-
-/* Greenlet object interface */
-
-#ifndef Py_GREENLETOBJECT_H
-#define Py_GREENLETOBJECT_H
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define GREENLET_VERSION "0.4.15"
-
-#if PY_VERSION_HEX >= 0x030700A3
-# define GREENLET_USE_EXC_INFO
-#endif
-
-typedef struct _greenlet {
- PyObject_HEAD
- char* stack_start;
- char* stack_stop;
- char* stack_copy;
- intptr_t stack_saved;
- struct _greenlet* stack_prev;
- struct _greenlet* parent;
- PyObject* run_info;
- struct _frame* top_frame;
- int recursion_depth;
- PyObject* weakreflist;
-#ifdef GREENLET_USE_EXC_INFO
- _PyErr_StackItem* exc_info;
- _PyErr_StackItem exc_state;
-#else
- PyObject* exc_type;
- PyObject* exc_value;
- PyObject* exc_traceback;
-#endif
- PyObject* dict;
-} PyGreenlet;
-
-#define PyGreenlet_Check(op) PyObject_TypeCheck(op, &PyGreenlet_Type)
-#define PyGreenlet_MAIN(op) (((PyGreenlet*)(op))->stack_stop == (char*) -1)
-#define PyGreenlet_STARTED(op) (((PyGreenlet*)(op))->stack_stop != NULL)
-#define PyGreenlet_ACTIVE(op) (((PyGreenlet*)(op))->stack_start != NULL)
-#define PyGreenlet_GET_PARENT(op) (((PyGreenlet*)(op))->parent)
-
-#if (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION >= 7) || (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 1) || PY_MAJOR_VERSION > 3
-#define GREENLET_USE_PYCAPSULE
-#endif
-
-/* C API functions */
-
-/* Total number of symbols that are exported */
-#define PyGreenlet_API_pointers 8
-
-#define PyGreenlet_Type_NUM 0
-#define PyExc_GreenletError_NUM 1
-#define PyExc_GreenletExit_NUM 2
-
-#define PyGreenlet_New_NUM 3
-#define PyGreenlet_GetCurrent_NUM 4
-#define PyGreenlet_Throw_NUM 5
-#define PyGreenlet_Switch_NUM 6
-#define PyGreenlet_SetParent_NUM 7
-
-#ifndef GREENLET_MODULE
-/* This section is used by modules that uses the greenlet C API */
-static void **_PyGreenlet_API = NULL;
-
-#define PyGreenlet_Type (*(PyTypeObject *) _PyGreenlet_API[PyGreenlet_Type_NUM])
-
-#define PyExc_GreenletError \
- ((PyObject *) _PyGreenlet_API[PyExc_GreenletError_NUM])
-
-#define PyExc_GreenletExit \
- ((PyObject *) _PyGreenlet_API[PyExc_GreenletExit_NUM])
-
-/*
- * PyGreenlet_New(PyObject *args)
- *
- * greenlet.greenlet(run, parent=None)
- */
-#define PyGreenlet_New \
- (* (PyGreenlet * (*)(PyObject *run, PyGreenlet *parent)) \
- _PyGreenlet_API[PyGreenlet_New_NUM])
-
-/*
- * PyGreenlet_GetCurrent(void)
- *
- * greenlet.getcurrent()
- */
-#define PyGreenlet_GetCurrent \
- (* (PyGreenlet * (*)(void)) _PyGreenlet_API[PyGreenlet_GetCurrent_NUM])
-
-/*
- * PyGreenlet_Throw(
- * PyGreenlet *greenlet,
- * PyObject *typ,
- * PyObject *val,
- * PyObject *tb)
- *
- * g.throw(...)
- */
-#define PyGreenlet_Throw \
- (* (PyObject * (*) \
- (PyGreenlet *self, PyObject *typ, PyObject *val, PyObject *tb)) \
- _PyGreenlet_API[PyGreenlet_Throw_NUM])
-
-/*
- * PyGreenlet_Switch(PyGreenlet *greenlet, PyObject *args)
- *
- * g.switch(*args, **kwargs)
- */
-#define PyGreenlet_Switch \
- (* (PyObject * (*)(PyGreenlet *greenlet, PyObject *args, PyObject *kwargs)) \
- _PyGreenlet_API[PyGreenlet_Switch_NUM])
-
-/*
- * PyGreenlet_SetParent(PyObject *greenlet, PyObject *new_parent)
- *
- * g.parent = new_parent
- */
-#define PyGreenlet_SetParent \
- (* (int (*)(PyGreenlet *greenlet, PyGreenlet *nparent)) \
- _PyGreenlet_API[PyGreenlet_SetParent_NUM])
-
-/* Macro that imports greenlet and initializes C API */
-#ifdef GREENLET_USE_PYCAPSULE
-#define PyGreenlet_Import() \
-{ \
- _PyGreenlet_API = (void**)PyCapsule_Import("greenlet._C_API", 0); \
-}
-#else
-#define PyGreenlet_Import() \
-{ \
- PyObject *module = PyImport_ImportModule("greenlet"); \
- if (module != NULL) { \
- PyObject *c_api_object = PyObject_GetAttrString( \
- module, "_C_API"); \
- if (c_api_object != NULL && PyCObject_Check(c_api_object)) { \
- _PyGreenlet_API = \
- (void **) PyCObject_AsVoidPtr(c_api_object); \
- Py_DECREF(c_api_object); \
- } \
- Py_DECREF(module); \
- } \
-}
-#endif
-
-#endif /* GREENLET_MODULE */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_GREENLETOBJECT_H */
diff --git a/EasyTrans/Include/import.h b/EasyTrans/Include/import.h
deleted file mode 100644
index c6648034..00000000
--- a/EasyTrans/Include/import.h
+++ /dev/null
@@ -1,151 +0,0 @@
-
-/* Module definition and import interface */
-
-#ifndef Py_IMPORT_H
-#define Py_IMPORT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(_PyInitError) _PyImportZip_Init(void);
-
-PyMODINIT_FUNC PyInit__imp(void);
-#endif /* !Py_LIMITED_API */
-PyAPI_FUNC(long) PyImport_GetMagicNumber(void);
-PyAPI_FUNC(const char *) PyImport_GetMagicTag(void);
-PyAPI_FUNC(PyObject *) PyImport_ExecCodeModule(
- const char *name, /* UTF-8 encoded string */
- PyObject *co
- );
-PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleEx(
- const char *name, /* UTF-8 encoded string */
- PyObject *co,
- const char *pathname /* decoded from the filesystem encoding */
- );
-PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleWithPathnames(
- const char *name, /* UTF-8 encoded string */
- PyObject *co,
- const char *pathname, /* decoded from the filesystem encoding */
- const char *cpathname /* decoded from the filesystem encoding */
- );
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(PyObject *) PyImport_ExecCodeModuleObject(
- PyObject *name,
- PyObject *co,
- PyObject *pathname,
- PyObject *cpathname
- );
-#endif
-PyAPI_FUNC(PyObject *) PyImport_GetModuleDict(void);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000
-PyAPI_FUNC(PyObject *) PyImport_GetModule(PyObject *name);
-#endif
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyImport_IsInitialized(PyInterpreterState *);
-PyAPI_FUNC(PyObject *) _PyImport_GetModuleId(struct _Py_Identifier *name);
-PyAPI_FUNC(PyObject *) _PyImport_AddModuleObject(PyObject *name,
- PyObject *modules);
-PyAPI_FUNC(int) _PyImport_SetModule(PyObject *name, PyObject *module);
-PyAPI_FUNC(int) _PyImport_SetModuleString(const char *name, PyObject* module);
-#endif
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(PyObject *) PyImport_AddModuleObject(
- PyObject *name
- );
-#endif
-PyAPI_FUNC(PyObject *) PyImport_AddModule(
- const char *name /* UTF-8 encoded string */
- );
-PyAPI_FUNC(PyObject *) PyImport_ImportModule(
- const char *name /* UTF-8 encoded string */
- );
-PyAPI_FUNC(PyObject *) PyImport_ImportModuleNoBlock(
- const char *name /* UTF-8 encoded string */
- );
-PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevel(
- const char *name, /* UTF-8 encoded string */
- PyObject *globals,
- PyObject *locals,
- PyObject *fromlist,
- int level
- );
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevelObject(
- PyObject *name,
- PyObject *globals,
- PyObject *locals,
- PyObject *fromlist,
- int level
- );
-#endif
-
-#define PyImport_ImportModuleEx(n, g, l, f) \
- PyImport_ImportModuleLevel(n, g, l, f, 0)
-
-PyAPI_FUNC(PyObject *) PyImport_GetImporter(PyObject *path);
-PyAPI_FUNC(PyObject *) PyImport_Import(PyObject *name);
-PyAPI_FUNC(PyObject *) PyImport_ReloadModule(PyObject *m);
-PyAPI_FUNC(void) PyImport_Cleanup(void);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(int) PyImport_ImportFrozenModuleObject(
- PyObject *name
- );
-#endif
-PyAPI_FUNC(int) PyImport_ImportFrozenModule(
- const char *name /* UTF-8 encoded string */
- );
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyImport_AcquireLock(void);
-PyAPI_FUNC(int) _PyImport_ReleaseLock(void);
-
-PyAPI_FUNC(void) _PyImport_ReInitLock(void);
-
-PyAPI_FUNC(PyObject *) _PyImport_FindBuiltin(
- const char *name, /* UTF-8 encoded string */
- PyObject *modules
- );
-PyAPI_FUNC(PyObject *) _PyImport_FindExtensionObject(PyObject *, PyObject *);
-PyAPI_FUNC(PyObject *) _PyImport_FindExtensionObjectEx(PyObject *, PyObject *,
- PyObject *);
-PyAPI_FUNC(int) _PyImport_FixupBuiltin(
- PyObject *mod,
- const char *name, /* UTF-8 encoded string */
- PyObject *modules
- );
-PyAPI_FUNC(int) _PyImport_FixupExtensionObject(PyObject*, PyObject *,
- PyObject *, PyObject *);
-
-struct _inittab {
- const char *name; /* ASCII encoded string */
- PyObject* (*initfunc)(void);
-};
-PyAPI_DATA(struct _inittab *) PyImport_Inittab;
-PyAPI_FUNC(int) PyImport_ExtendInittab(struct _inittab *newtab);
-#endif /* Py_LIMITED_API */
-
-PyAPI_DATA(PyTypeObject) PyNullImporter_Type;
-
-PyAPI_FUNC(int) PyImport_AppendInittab(
- const char *name, /* ASCII encoded string */
- PyObject* (*initfunc)(void)
- );
-
-#ifndef Py_LIMITED_API
-struct _frozen {
- const char *name; /* ASCII encoded string */
- const unsigned char *code;
- int size;
-};
-
-/* Embedding apps may change this pointer to point to their favorite
- collection of frozen modules: */
-
-PyAPI_DATA(const struct _frozen *) PyImport_FrozenModules;
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_IMPORT_H */
diff --git a/EasyTrans/Include/internal/ceval.h b/EasyTrans/Include/internal/ceval.h
deleted file mode 100644
index cdabb952..00000000
--- a/EasyTrans/Include/internal/ceval.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef Py_INTERNAL_CEVAL_H
-#define Py_INTERNAL_CEVAL_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "pyatomic.h"
-#include "pythread.h"
-
-struct _pending_calls {
- unsigned long main_thread;
- PyThread_type_lock lock;
- /* Request for running pending calls. */
- _Py_atomic_int calls_to_do;
- /* Request for looking at the `async_exc` field of the current
- thread state.
- Guarded by the GIL. */
- int async_exc;
-#define NPENDINGCALLS 32
- struct {
- int (*func)(void *);
- void *arg;
- } calls[NPENDINGCALLS];
- int first;
- int last;
-};
-
-#include "internal/gil.h"
-
-struct _ceval_runtime_state {
- int recursion_limit;
- /* Records whether tracing is on for any thread. Counts the number
- of threads for which tstate->c_tracefunc is non-NULL, so if the
- value is 0, we know we don't have to check this thread's
- c_tracefunc. This speeds up the if statement in
- PyEval_EvalFrameEx() after fast_next_opcode. */
- int tracing_possible;
- /* This single variable consolidates all requests to break out of
- the fast path in the eval loop. */
- _Py_atomic_int eval_breaker;
- /* Request for dropping the GIL */
- _Py_atomic_int gil_drop_request;
- struct _pending_calls pending;
- struct _gil_runtime_state gil;
-};
-
-PyAPI_FUNC(void) _PyEval_Initialize(struct _ceval_runtime_state *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_CEVAL_H */
diff --git a/EasyTrans/Include/internal/condvar.h b/EasyTrans/Include/internal/condvar.h
deleted file mode 100644
index f9330890..00000000
--- a/EasyTrans/Include/internal/condvar.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef Py_INTERNAL_CONDVAR_H
-#define Py_INTERNAL_CONDVAR_H
-
-#ifndef _POSIX_THREADS
-/* This means pthreads are not implemented in libc headers, hence the macro
- not present in unistd.h. But they still can be implemented as an external
- library (e.g. gnu pth in pthread emulation) */
-# ifdef HAVE_PTHREAD_H
-# include /* _POSIX_THREADS */
-# endif
-#endif
-
-#ifdef _POSIX_THREADS
-/*
- * POSIX support
- */
-#define Py_HAVE_CONDVAR
-
-#include
-
-#define PyMUTEX_T pthread_mutex_t
-#define PyCOND_T pthread_cond_t
-
-#elif defined(NT_THREADS)
-/*
- * Windows (XP, 2003 server and later, as well as (hopefully) CE) support
- *
- * Emulated condition variables ones that work with XP and later, plus
- * example native support on VISTA and onwards.
- */
-#define Py_HAVE_CONDVAR
-
-/* include windows if it hasn't been done before */
-#define WIN32_LEAN_AND_MEAN
-#include
-
-/* options */
-/* non-emulated condition variables are provided for those that want
- * to target Windows Vista. Modify this macro to enable them.
- */
-#ifndef _PY_EMULATED_WIN_CV
-#define _PY_EMULATED_WIN_CV 1 /* use emulated condition variables */
-#endif
-
-/* fall back to emulation if not targeting Vista */
-#if !defined NTDDI_VISTA || NTDDI_VERSION < NTDDI_VISTA
-#undef _PY_EMULATED_WIN_CV
-#define _PY_EMULATED_WIN_CV 1
-#endif
-
-#if _PY_EMULATED_WIN_CV
-
-typedef CRITICAL_SECTION PyMUTEX_T;
-
-/* The ConditionVariable object. From XP onwards it is easily emulated
- with a Semaphore.
- Semaphores are available on Windows XP (2003 server) and later.
- We use a Semaphore rather than an auto-reset event, because although
- an auto-resent event might appear to solve the lost-wakeup bug (race
- condition between releasing the outer lock and waiting) because it
- maintains state even though a wait hasn't happened, there is still
- a lost wakeup problem if more than one thread are interrupted in the
- critical place. A semaphore solves that, because its state is
- counted, not Boolean.
- Because it is ok to signal a condition variable with no one
- waiting, we need to keep track of the number of
- waiting threads. Otherwise, the semaphore's state could rise
- without bound. This also helps reduce the number of "spurious wakeups"
- that would otherwise happen.
- */
-
-typedef struct _PyCOND_T
-{
- HANDLE sem;
- int waiting; /* to allow PyCOND_SIGNAL to be a no-op */
-} PyCOND_T;
-
-#else /* !_PY_EMULATED_WIN_CV */
-
-/* Use native Win7 primitives if build target is Win7 or higher */
-
-/* SRWLOCK is faster and better than CriticalSection */
-typedef SRWLOCK PyMUTEX_T;
-
-typedef CONDITION_VARIABLE PyCOND_T;
-
-#endif /* _PY_EMULATED_WIN_CV */
-
-#endif /* _POSIX_THREADS, NT_THREADS */
-
-#endif /* Py_INTERNAL_CONDVAR_H */
diff --git a/EasyTrans/Include/internal/context.h b/EasyTrans/Include/internal/context.h
deleted file mode 100644
index 59f88f26..00000000
--- a/EasyTrans/Include/internal/context.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef Py_INTERNAL_CONTEXT_H
-#define Py_INTERNAL_CONTEXT_H
-
-
-#include "internal/hamt.h"
-
-
-struct _pycontextobject {
- PyObject_HEAD
- PyContext *ctx_prev;
- PyHamtObject *ctx_vars;
- PyObject *ctx_weakreflist;
- int ctx_entered;
-};
-
-
-struct _pycontextvarobject {
- PyObject_HEAD
- PyObject *var_name;
- PyObject *var_default;
- PyObject *var_cached;
- uint64_t var_cached_tsid;
- uint64_t var_cached_tsver;
- Py_hash_t var_hash;
-};
-
-
-struct _pycontexttokenobject {
- PyObject_HEAD
- PyContext *tok_ctx;
- PyContextVar *tok_var;
- PyObject *tok_oldval;
- int tok_used;
-};
-
-
-int _PyContext_Init(void);
-void _PyContext_Fini(void);
-
-
-#endif /* !Py_INTERNAL_CONTEXT_H */
diff --git a/EasyTrans/Include/internal/gil.h b/EasyTrans/Include/internal/gil.h
deleted file mode 100644
index 6139bd21..00000000
--- a/EasyTrans/Include/internal/gil.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef Py_INTERNAL_GIL_H
-#define Py_INTERNAL_GIL_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "pyatomic.h"
-
-#include "internal/condvar.h"
-#ifndef Py_HAVE_CONDVAR
-#error You need either a POSIX-compatible or a Windows system!
-#endif
-
-/* Enable if you want to force the switching of threads at least
- every `interval`. */
-#undef FORCE_SWITCHING
-#define FORCE_SWITCHING
-
-struct _gil_runtime_state {
- /* microseconds (the Python API uses seconds, though) */
- unsigned long interval;
- /* Last PyThreadState holding / having held the GIL. This helps us
- know whether anyone else was scheduled after we dropped the GIL. */
- _Py_atomic_address last_holder;
- /* Whether the GIL is already taken (-1 if uninitialized). This is
- atomic because it can be read without any lock taken in ceval.c. */
- _Py_atomic_int locked;
- /* Number of GIL switches since the beginning. */
- unsigned long switch_number;
- /* This condition variable allows one or several threads to wait
- until the GIL is released. In addition, the mutex also protects
- the above variables. */
- PyCOND_T cond;
- PyMUTEX_T mutex;
-#ifdef FORCE_SWITCHING
- /* This condition variable helps the GIL-releasing thread wait for
- a GIL-awaiting thread to be scheduled and take the GIL. */
- PyCOND_T switch_cond;
- PyMUTEX_T switch_mutex;
-#endif
-};
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_GIL_H */
diff --git a/EasyTrans/Include/internal/hamt.h b/EasyTrans/Include/internal/hamt.h
deleted file mode 100644
index 29ad28b1..00000000
--- a/EasyTrans/Include/internal/hamt.h
+++ /dev/null
@@ -1,113 +0,0 @@
-#ifndef Py_INTERNAL_HAMT_H
-#define Py_INTERNAL_HAMT_H
-
-
-#define _Py_HAMT_MAX_TREE_DEPTH 7
-
-
-#define PyHamt_Check(o) (Py_TYPE(o) == &_PyHamt_Type)
-
-
-/* Abstract tree node. */
-typedef struct {
- PyObject_HEAD
-} PyHamtNode;
-
-
-/* An HAMT immutable mapping collection. */
-typedef struct {
- PyObject_HEAD
- PyHamtNode *h_root;
- PyObject *h_weakreflist;
- Py_ssize_t h_count;
-} PyHamtObject;
-
-
-/* A struct to hold the state of depth-first traverse of the tree.
-
- HAMT is an immutable collection. Iterators will hold a strong reference
- to it, and every node in the HAMT has strong references to its children.
-
- So for iterators, we can implement zero allocations and zero reference
- inc/dec depth-first iteration.
-
- - i_nodes: an array of seven pointers to tree nodes
- - i_level: the current node in i_nodes
- - i_pos: an array of positions within nodes in i_nodes.
-*/
-typedef struct {
- PyHamtNode *i_nodes[_Py_HAMT_MAX_TREE_DEPTH];
- Py_ssize_t i_pos[_Py_HAMT_MAX_TREE_DEPTH];
- int8_t i_level;
-} PyHamtIteratorState;
-
-
-/* Base iterator object.
-
- Contains the iteration state, a pointer to the HAMT tree,
- and a pointer to the 'yield function'. The latter is a simple
- function that returns a key/value tuple for the 'Items' iterator,
- just a key for the 'Keys' iterator, and a value for the 'Values'
- iterator.
-*/
-typedef struct {
- PyObject_HEAD
- PyHamtObject *hi_obj;
- PyHamtIteratorState hi_iter;
- binaryfunc hi_yield;
-} PyHamtIterator;
-
-
-PyAPI_DATA(PyTypeObject) _PyHamt_Type;
-PyAPI_DATA(PyTypeObject) _PyHamt_ArrayNode_Type;
-PyAPI_DATA(PyTypeObject) _PyHamt_BitmapNode_Type;
-PyAPI_DATA(PyTypeObject) _PyHamt_CollisionNode_Type;
-PyAPI_DATA(PyTypeObject) _PyHamtKeys_Type;
-PyAPI_DATA(PyTypeObject) _PyHamtValues_Type;
-PyAPI_DATA(PyTypeObject) _PyHamtItems_Type;
-
-
-/* Create a new HAMT immutable mapping. */
-PyHamtObject * _PyHamt_New(void);
-
-/* Return a new collection based on "o", but with an additional
- key/val pair. */
-PyHamtObject * _PyHamt_Assoc(PyHamtObject *o, PyObject *key, PyObject *val);
-
-/* Return a new collection based on "o", but without "key". */
-PyHamtObject * _PyHamt_Without(PyHamtObject *o, PyObject *key);
-
-/* Find "key" in the "o" collection.
-
- Return:
- - -1: An error occurred.
- - 0: "key" wasn't found in "o".
- - 1: "key" is in "o"; "*val" is set to its value (a borrowed ref).
-*/
-int _PyHamt_Find(PyHamtObject *o, PyObject *key, PyObject **val);
-
-/* Check if "v" is equal to "w".
-
- Return:
- - 0: v != w
- - 1: v == w
- - -1: An error occurred.
-*/
-int _PyHamt_Eq(PyHamtObject *v, PyHamtObject *w);
-
-/* Return the size of "o"; equivalent of "len(o)". */
-Py_ssize_t _PyHamt_Len(PyHamtObject *o);
-
-/* Return a Keys iterator over "o". */
-PyObject * _PyHamt_NewIterKeys(PyHamtObject *o);
-
-/* Return a Values iterator over "o". */
-PyObject * _PyHamt_NewIterValues(PyHamtObject *o);
-
-/* Return a Items iterator over "o". */
-PyObject * _PyHamt_NewIterItems(PyHamtObject *o);
-
-int _PyHamt_Init(void);
-void _PyHamt_Fini(void);
-
-#endif /* !Py_INTERNAL_HAMT_H */
diff --git a/EasyTrans/Include/internal/hash.h b/EasyTrans/Include/internal/hash.h
deleted file mode 100644
index e14b80a7..00000000
--- a/EasyTrans/Include/internal/hash.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef Py_INTERNAL_HASH_H
-#define Py_INTERNAL_HASH_H
-
-uint64_t _Py_KeyedHash(uint64_t, const char *, Py_ssize_t);
-
-#endif
diff --git a/EasyTrans/Include/internal/import.h b/EasyTrans/Include/internal/import.h
deleted file mode 100644
index 4746e755..00000000
--- a/EasyTrans/Include/internal/import.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef Py_INTERNAL_IMPORT_H
-#define Py_INTERNAL_IMPORT_H
-
-extern const char *_Py_CheckHashBasedPycsMode;
-
-#endif
diff --git a/EasyTrans/Include/internal/mem.h b/EasyTrans/Include/internal/mem.h
deleted file mode 100644
index 5896e4a0..00000000
--- a/EasyTrans/Include/internal/mem.h
+++ /dev/null
@@ -1,175 +0,0 @@
-#ifndef Py_INTERNAL_MEM_H
-#define Py_INTERNAL_MEM_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "objimpl.h"
-#include "pymem.h"
-
-
-/* GC runtime state */
-
-/* If we change this, we need to change the default value in the
- signature of gc.collect. */
-#define NUM_GENERATIONS 3
-
-/*
- NOTE: about the counting of long-lived objects.
-
- To limit the cost of garbage collection, there are two strategies;
- - make each collection faster, e.g. by scanning fewer objects
- - do less collections
- This heuristic is about the latter strategy.
-
- In addition to the various configurable thresholds, we only trigger a
- full collection if the ratio
- long_lived_pending / long_lived_total
- is above a given value (hardwired to 25%).
-
- The reason is that, while "non-full" collections (i.e., collections of
- the young and middle generations) will always examine roughly the same
- number of objects -- determined by the aforementioned thresholds --,
- the cost of a full collection is proportional to the total number of
- long-lived objects, which is virtually unbounded.
-
- Indeed, it has been remarked that doing a full collection every
- of object creations entails a dramatic performance
- degradation in workloads which consist in creating and storing lots of
- long-lived objects (e.g. building a large list of GC-tracked objects would
- show quadratic performance, instead of linear as expected: see issue #4074).
-
- Using the above ratio, instead, yields amortized linear performance in
- the total number of objects (the effect of which can be summarized
- thusly: "each full garbage collection is more and more costly as the
- number of objects grows, but we do fewer and fewer of them").
-
- This heuristic was suggested by Martin von Löwis on python-dev in
- June 2008. His original analysis and proposal can be found at:
- http://mail.python.org/pipermail/python-dev/2008-June/080579.html
-*/
-
-/*
- NOTE: about untracking of mutable objects.
-
- Certain types of container cannot participate in a reference cycle, and
- so do not need to be tracked by the garbage collector. Untracking these
- objects reduces the cost of garbage collections. However, determining
- which objects may be untracked is not free, and the costs must be
- weighed against the benefits for garbage collection.
-
- There are two possible strategies for when to untrack a container:
-
- i) When the container is created.
- ii) When the container is examined by the garbage collector.
-
- Tuples containing only immutable objects (integers, strings etc, and
- recursively, tuples of immutable objects) do not need to be tracked.
- The interpreter creates a large number of tuples, many of which will
- not survive until garbage collection. It is therefore not worthwhile
- to untrack eligible tuples at creation time.
-
- Instead, all tuples except the empty tuple are tracked when created.
- During garbage collection it is determined whether any surviving tuples
- can be untracked. A tuple can be untracked if all of its contents are
- already not tracked. Tuples are examined for untracking in all garbage
- collection cycles. It may take more than one cycle to untrack a tuple.
-
- Dictionaries containing only immutable objects also do not need to be
- tracked. Dictionaries are untracked when created. If a tracked item is
- inserted into a dictionary (either as a key or value), the dictionary
- becomes tracked. During a full garbage collection (all generations),
- the collector will untrack any dictionaries whose contents are not
- tracked.
-
- The module provides the python function is_tracked(obj), which returns
- the CURRENT tracking status of the object. Subsequent garbage
- collections may change the tracking status of the object.
-
- Untracking of certain containers was introduced in issue #4688, and
- the algorithm was refined in response to issue #14775.
-*/
-
-struct gc_generation {
- PyGC_Head head;
- int threshold; /* collection threshold */
- int count; /* count of allocations or collections of younger
- generations */
-};
-
-/* Running stats per generation */
-struct gc_generation_stats {
- /* total number of collections */
- Py_ssize_t collections;
- /* total number of collected objects */
- Py_ssize_t collected;
- /* total number of uncollectable objects (put into gc.garbage) */
- Py_ssize_t uncollectable;
-};
-
-struct _gc_runtime_state {
- /* List of objects that still need to be cleaned up, singly linked
- * via their gc headers' gc_prev pointers. */
- PyObject *trash_delete_later;
- /* Current call-stack depth of tp_dealloc calls. */
- int trash_delete_nesting;
-
- int enabled;
- int debug;
- /* linked lists of container objects */
- struct gc_generation generations[NUM_GENERATIONS];
- PyGC_Head *generation0;
- /* a permanent generation which won't be collected */
- struct gc_generation permanent_generation;
- struct gc_generation_stats generation_stats[NUM_GENERATIONS];
- /* true if we are currently running the collector */
- int collecting;
- /* list of uncollectable objects */
- PyObject *garbage;
- /* a list of callbacks to be invoked when collection is performed */
- PyObject *callbacks;
- /* This is the number of objects that survived the last full
- collection. It approximates the number of long lived objects
- tracked by the GC.
-
- (by "full collection", we mean a collection of the oldest
- generation). */
- Py_ssize_t long_lived_total;
- /* This is the number of objects that survived all "non-full"
- collections, and are awaiting to undergo a full collection for
- the first time. */
- Py_ssize_t long_lived_pending;
-};
-
-PyAPI_FUNC(void) _PyGC_Initialize(struct _gc_runtime_state *);
-
-#define _PyGC_generation0 _PyRuntime.gc.generation0
-
-/* Heuristic checking if a pointer value is newly allocated
- (uninitialized) or newly freed. The pointer is not dereferenced, only the
- pointer value is checked.
-
- The heuristic relies on the debug hooks on Python memory allocators which
- fills newly allocated memory with CLEANBYTE (0xCD) and newly freed memory
- with DEADBYTE (0xDD). Detect also "untouchable bytes" marked
- with FORBIDDENBYTE (0xFD). */
-static inline int _PyMem_IsPtrFreed(void *ptr)
-{
- uintptr_t value = (uintptr_t)ptr;
-#if SIZEOF_VOID_P == 8
- return (value == (uintptr_t)0xCDCDCDCDCDCDCDCD
- || value == (uintptr_t)0xDDDDDDDDDDDDDDDD
- || value == (uintptr_t)0xFDFDFDFDFDFDFDFD);
-#elif SIZEOF_VOID_P == 4
- return (value == (uintptr_t)0xCDCDCDCD
- || value == (uintptr_t)0xDDDDDDDD
- || value == (uintptr_t)0xFDFDFDFD);
-#else
-# error "unknown pointer size"
-#endif
-}
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_MEM_H */
diff --git a/EasyTrans/Include/internal/pygetopt.h b/EasyTrans/Include/internal/pygetopt.h
deleted file mode 100644
index 8ef2ada7..00000000
--- a/EasyTrans/Include/internal/pygetopt.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef Py_INTERNAL_PYGETOPT_H
-#define Py_INTERNAL_PYGETOPT_H
-
-extern int _PyOS_opterr;
-extern int _PyOS_optind;
-extern wchar_t *_PyOS_optarg;
-
-extern void _PyOS_ResetGetOpt(void);
-
-typedef struct {
- const wchar_t *name;
- int has_arg;
- int val;
-} _PyOS_LongOption;
-
-extern int _PyOS_GetOpt(int argc, wchar_t **argv, wchar_t *optstring,
- const _PyOS_LongOption *longopts, int *longindex);
-
-#endif /* !Py_INTERNAL_PYGETOPT_H */
diff --git a/EasyTrans/Include/internal/pystate.h b/EasyTrans/Include/internal/pystate.h
deleted file mode 100644
index 5891339b..00000000
--- a/EasyTrans/Include/internal/pystate.h
+++ /dev/null
@@ -1,135 +0,0 @@
-#ifndef Py_INTERNAL_PYSTATE_H
-#define Py_INTERNAL_PYSTATE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "pystate.h"
-#include "pyatomic.h"
-#include "pythread.h"
-
-#include "internal/mem.h"
-#include "internal/ceval.h"
-#include "internal/warnings.h"
-
-
-/* GIL state */
-
-struct _gilstate_runtime_state {
- int check_enabled;
- /* Assuming the current thread holds the GIL, this is the
- PyThreadState for the current thread. */
- _Py_atomic_address tstate_current;
- PyThreadFrameGetter getframe;
- /* The single PyInterpreterState used by this process'
- GILState implementation
- */
- /* TODO: Given interp_main, it may be possible to kill this ref */
- PyInterpreterState *autoInterpreterState;
- Py_tss_t autoTSSkey;
-};
-
-/* hook for PyEval_GetFrame(), requested for Psyco */
-#define _PyThreadState_GetFrame _PyRuntime.gilstate.getframe
-
-/* Issue #26558: Flag to disable PyGILState_Check().
- If set to non-zero, PyGILState_Check() always return 1. */
-#define _PyGILState_check_enabled _PyRuntime.gilstate.check_enabled
-
-
-typedef struct {
- /* Full path to the Python program */
- wchar_t *program_full_path;
- wchar_t *prefix;
-#ifdef MS_WINDOWS
- wchar_t *dll_path;
-#else
- wchar_t *exec_prefix;
-#endif
- /* Set by Py_SetPath(), or computed by _PyPathConfig_Init() */
- wchar_t *module_search_path;
- /* Python program name */
- wchar_t *program_name;
- /* Set by Py_SetPythonHome() or PYTHONHOME environment variable */
- wchar_t *home;
-} _PyPathConfig;
-
-#define _PyPathConfig_INIT {.module_search_path = NULL}
-/* Note: _PyPathConfig_INIT sets other fields to 0/NULL */
-
-PyAPI_DATA(_PyPathConfig) _Py_path_config;
-
-PyAPI_FUNC(_PyInitError) _PyPathConfig_Calculate(
- _PyPathConfig *config,
- const _PyCoreConfig *core_config);
-PyAPI_FUNC(void) _PyPathConfig_Clear(_PyPathConfig *config);
-
-
-/* interpreter state */
-
-PyAPI_FUNC(PyInterpreterState *) _PyInterpreterState_LookUpID(PY_INT64_T);
-
-PyAPI_FUNC(int) _PyInterpreterState_IDInitref(PyInterpreterState *);
-PyAPI_FUNC(void) _PyInterpreterState_IDIncref(PyInterpreterState *);
-PyAPI_FUNC(void) _PyInterpreterState_IDDecref(PyInterpreterState *);
-
-/* Full Python runtime state */
-
-typedef struct pyruntimestate {
- int initialized;
- int core_initialized;
- PyThreadState *finalizing;
-
- struct pyinterpreters {
- PyThread_type_lock mutex;
- PyInterpreterState *head;
- PyInterpreterState *main;
- /* _next_interp_id is an auto-numbered sequence of small
- integers. It gets initialized in _PyInterpreterState_Init(),
- which is called in Py_Initialize(), and used in
- PyInterpreterState_New(). A negative interpreter ID
- indicates an error occurred. The main interpreter will
- always have an ID of 0. Overflow results in a RuntimeError.
- If that becomes a problem later then we can adjust, e.g. by
- using a Python int. */
- int64_t next_id;
- } interpreters;
-
-#define NEXITFUNCS 32
- void (*exitfuncs[NEXITFUNCS])(void);
- int nexitfuncs;
-
- struct _gc_runtime_state gc;
- struct _warnings_runtime_state warnings;
- struct _ceval_runtime_state ceval;
- struct _gilstate_runtime_state gilstate;
-
- // XXX Consolidate globals found via the check-c-globals script.
-} _PyRuntimeState;
-
-#define _PyRuntimeState_INIT {.initialized = 0, .core_initialized = 0}
-/* Note: _PyRuntimeState_INIT sets other fields to 0/NULL */
-
-PyAPI_DATA(_PyRuntimeState) _PyRuntime;
-PyAPI_FUNC(_PyInitError) _PyRuntimeState_Init(_PyRuntimeState *);
-PyAPI_FUNC(void) _PyRuntimeState_Fini(_PyRuntimeState *);
-
-/* Initialize _PyRuntimeState.
- Return NULL on success, or return an error message on failure. */
-PyAPI_FUNC(_PyInitError) _PyRuntime_Initialize(void);
-
-PyAPI_FUNC(void) _PyRuntime_Finalize(void);
-
-
-#define _Py_CURRENTLY_FINALIZING(tstate) \
- (_PyRuntime.finalizing == tstate)
-
-
-/* Other */
-
-PyAPI_FUNC(_PyInitError) _PyInterpreterState_Enable(_PyRuntimeState *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_PYSTATE_H */
diff --git a/EasyTrans/Include/internal/warnings.h b/EasyTrans/Include/internal/warnings.h
deleted file mode 100644
index 2878a28a..00000000
--- a/EasyTrans/Include/internal/warnings.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef Py_INTERNAL_WARNINGS_H
-#define Py_INTERNAL_WARNINGS_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "object.h"
-
-struct _warnings_runtime_state {
- /* Both 'filters' and 'onceregistry' can be set in warnings.py;
- get_warnings_attr() will reset these variables accordingly. */
- PyObject *filters; /* List */
- PyObject *once_registry; /* Dict */
- PyObject *default_action; /* String */
- long filters_version;
-};
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERNAL_WARNINGS_H */
diff --git a/EasyTrans/Include/intrcheck.h b/EasyTrans/Include/intrcheck.h
deleted file mode 100644
index 2e17336c..00000000
--- a/EasyTrans/Include/intrcheck.h
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef Py_INTRCHECK_H
-#define Py_INTRCHECK_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(int) PyOS_InterruptOccurred(void);
-PyAPI_FUNC(void) PyOS_InitInterrupts(void);
-#ifdef HAVE_FORK
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000
-PyAPI_FUNC(void) PyOS_BeforeFork(void);
-PyAPI_FUNC(void) PyOS_AfterFork_Parent(void);
-PyAPI_FUNC(void) PyOS_AfterFork_Child(void);
-#endif
-#endif
-/* Deprecated, please use PyOS_AfterFork_Child() instead */
-PyAPI_FUNC(void) PyOS_AfterFork(void) Py_DEPRECATED(3.7);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyOS_IsMainThread(void);
-PyAPI_FUNC(void) _PySignal_AfterFork(void);
-
-#ifdef MS_WINDOWS
-/* windows.h is not included by Python.h so use void* instead of HANDLE */
-PyAPI_FUNC(void*) _PyOS_SigintEvent(void);
-#endif
-#endif /* !Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTRCHECK_H */
diff --git a/EasyTrans/Include/iterobject.h b/EasyTrans/Include/iterobject.h
deleted file mode 100644
index f61726f1..00000000
--- a/EasyTrans/Include/iterobject.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef Py_ITEROBJECT_H
-#define Py_ITEROBJECT_H
-/* Iterators (the basic kind, over a sequence) */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_DATA(PyTypeObject) PySeqIter_Type;
-PyAPI_DATA(PyTypeObject) PyCallIter_Type;
-PyAPI_DATA(PyTypeObject) PyCmpWrapper_Type;
-
-#define PySeqIter_Check(op) (Py_TYPE(op) == &PySeqIter_Type)
-
-PyAPI_FUNC(PyObject *) PySeqIter_New(PyObject *);
-
-
-#define PyCallIter_Check(op) (Py_TYPE(op) == &PyCallIter_Type)
-
-PyAPI_FUNC(PyObject *) PyCallIter_New(PyObject *, PyObject *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_ITEROBJECT_H */
-
diff --git a/EasyTrans/Include/listobject.h b/EasyTrans/Include/listobject.h
deleted file mode 100644
index 6057279d..00000000
--- a/EasyTrans/Include/listobject.h
+++ /dev/null
@@ -1,81 +0,0 @@
-
-/* List object interface */
-
-/*
-Another generally useful object type is a list of object pointers.
-This is a mutable type: the list items can be changed, and items can be
-added or removed. Out-of-range indices or non-list objects are ignored.
-
-*** WARNING *** PyList_SetItem does not increment the new item's reference
-count, but does decrement the reference count of the item it replaces,
-if not nil. It does *decrement* the reference count if it is *not*
-inserted in the list. Similarly, PyList_GetItem does not increment the
-returned item's reference count.
-*/
-
-#ifndef Py_LISTOBJECT_H
-#define Py_LISTOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-typedef struct {
- PyObject_VAR_HEAD
- /* Vector of pointers to list elements. list[0] is ob_item[0], etc. */
- PyObject **ob_item;
-
- /* ob_item contains space for 'allocated' elements. The number
- * currently in use is ob_size.
- * Invariants:
- * 0 <= ob_size <= allocated
- * len(list) == ob_size
- * ob_item == NULL implies ob_size == allocated == 0
- * list.sort() temporarily sets allocated to -1 to detect mutations.
- *
- * Items must normally not be NULL, except during construction when
- * the list is not yet visible outside the function that builds it.
- */
- Py_ssize_t allocated;
-} PyListObject;
-#endif
-
-PyAPI_DATA(PyTypeObject) PyList_Type;
-PyAPI_DATA(PyTypeObject) PyListIter_Type;
-PyAPI_DATA(PyTypeObject) PyListRevIter_Type;
-PyAPI_DATA(PyTypeObject) PySortWrapper_Type;
-
-#define PyList_Check(op) \
- PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LIST_SUBCLASS)
-#define PyList_CheckExact(op) (Py_TYPE(op) == &PyList_Type)
-
-PyAPI_FUNC(PyObject *) PyList_New(Py_ssize_t size);
-PyAPI_FUNC(Py_ssize_t) PyList_Size(PyObject *);
-PyAPI_FUNC(PyObject *) PyList_GetItem(PyObject *, Py_ssize_t);
-PyAPI_FUNC(int) PyList_SetItem(PyObject *, Py_ssize_t, PyObject *);
-PyAPI_FUNC(int) PyList_Insert(PyObject *, Py_ssize_t, PyObject *);
-PyAPI_FUNC(int) PyList_Append(PyObject *, PyObject *);
-PyAPI_FUNC(PyObject *) PyList_GetSlice(PyObject *, Py_ssize_t, Py_ssize_t);
-PyAPI_FUNC(int) PyList_SetSlice(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *);
-PyAPI_FUNC(int) PyList_Sort(PyObject *);
-PyAPI_FUNC(int) PyList_Reverse(PyObject *);
-PyAPI_FUNC(PyObject *) PyList_AsTuple(PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyList_Extend(PyListObject *, PyObject *);
-
-PyAPI_FUNC(int) PyList_ClearFreeList(void);
-PyAPI_FUNC(void) _PyList_DebugMallocStats(FILE *out);
-#endif
-
-/* Macro, trading safety for speed */
-#ifndef Py_LIMITED_API
-#define PyList_GET_ITEM(op, i) (((PyListObject *)(op))->ob_item[i])
-#define PyList_SET_ITEM(op, i, v) (((PyListObject *)(op))->ob_item[i] = (v))
-#define PyList_GET_SIZE(op) (assert(PyList_Check(op)),Py_SIZE(op))
-#define _PyList_ITEMS(op) (((PyListObject *)(op))->ob_item)
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_LISTOBJECT_H */
diff --git a/EasyTrans/Include/longintrepr.h b/EasyTrans/Include/longintrepr.h
deleted file mode 100644
index ff4155f9..00000000
--- a/EasyTrans/Include/longintrepr.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef Py_LIMITED_API
-#ifndef Py_LONGINTREPR_H
-#define Py_LONGINTREPR_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* This is published for the benefit of "friends" marshal.c and _decimal.c. */
-
-/* Parameters of the integer representation. There are two different
- sets of parameters: one set for 30-bit digits, stored in an unsigned 32-bit
- integer type, and one set for 15-bit digits with each digit stored in an
- unsigned short. The value of PYLONG_BITS_IN_DIGIT, defined either at
- configure time or in pyport.h, is used to decide which digit size to use.
-
- Type 'digit' should be able to hold 2*PyLong_BASE-1, and type 'twodigits'
- should be an unsigned integer type able to hold all integers up to
- PyLong_BASE*PyLong_BASE-1. x_sub assumes that 'digit' is an unsigned type,
- and that overflow is handled by taking the result modulo 2**N for some N >
- PyLong_SHIFT. The majority of the code doesn't care about the precise
- value of PyLong_SHIFT, but there are some notable exceptions:
-
- - long_pow() requires that PyLong_SHIFT be divisible by 5
-
- - PyLong_{As,From}ByteArray require that PyLong_SHIFT be at least 8
-
- - long_hash() requires that PyLong_SHIFT is *strictly* less than the number
- of bits in an unsigned long, as do the PyLong <-> long (or unsigned long)
- conversion functions
-
- - the Python int <-> size_t/Py_ssize_t conversion functions expect that
- PyLong_SHIFT is strictly less than the number of bits in a size_t
-
- - the marshal code currently expects that PyLong_SHIFT is a multiple of 15
-
- - NSMALLNEGINTS and NSMALLPOSINTS should be small enough to fit in a single
- digit; with the current values this forces PyLong_SHIFT >= 9
-
- The values 15 and 30 should fit all of the above requirements, on any
- platform.
-*/
-
-#if PYLONG_BITS_IN_DIGIT == 30
-typedef uint32_t digit;
-typedef int32_t sdigit; /* signed variant of digit */
-typedef uint64_t twodigits;
-typedef int64_t stwodigits; /* signed variant of twodigits */
-#define PyLong_SHIFT 30
-#define _PyLong_DECIMAL_SHIFT 9 /* max(e such that 10**e fits in a digit) */
-#define _PyLong_DECIMAL_BASE ((digit)1000000000) /* 10 ** DECIMAL_SHIFT */
-#elif PYLONG_BITS_IN_DIGIT == 15
-typedef unsigned short digit;
-typedef short sdigit; /* signed variant of digit */
-typedef unsigned long twodigits;
-typedef long stwodigits; /* signed variant of twodigits */
-#define PyLong_SHIFT 15
-#define _PyLong_DECIMAL_SHIFT 4 /* max(e such that 10**e fits in a digit) */
-#define _PyLong_DECIMAL_BASE ((digit)10000) /* 10 ** DECIMAL_SHIFT */
-#else
-#error "PYLONG_BITS_IN_DIGIT should be 15 or 30"
-#endif
-#define PyLong_BASE ((digit)1 << PyLong_SHIFT)
-#define PyLong_MASK ((digit)(PyLong_BASE - 1))
-
-#if PyLong_SHIFT % 5 != 0
-#error "longobject.c requires that PyLong_SHIFT be divisible by 5"
-#endif
-
-/* Long integer representation.
- The absolute value of a number is equal to
- SUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)
- Negative numbers are represented with ob_size < 0;
- zero is represented by ob_size == 0.
- In a normalized number, ob_digit[abs(ob_size)-1] (the most significant
- digit) is never zero. Also, in all cases, for all valid i,
- 0 <= ob_digit[i] <= MASK.
- The allocation function takes care of allocating extra memory
- so that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.
-
- CAUTION: Generic code manipulating subtypes of PyVarObject has to
- aware that ints abuse ob_size's sign bit.
-*/
-
-struct _longobject {
- PyObject_VAR_HEAD
- digit ob_digit[1];
-};
-
-PyAPI_FUNC(PyLongObject *) _PyLong_New(Py_ssize_t);
-
-/* Return a copy of src. */
-PyAPI_FUNC(PyObject *) _PyLong_Copy(PyLongObject *src);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_LONGINTREPR_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/longobject.h b/EasyTrans/Include/longobject.h
deleted file mode 100644
index 7bdd0472..00000000
--- a/EasyTrans/Include/longobject.h
+++ /dev/null
@@ -1,220 +0,0 @@
-#ifndef Py_LONGOBJECT_H
-#define Py_LONGOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Long (arbitrary precision) integer object interface */
-
-typedef struct _longobject PyLongObject; /* Revealed in longintrepr.h */
-
-PyAPI_DATA(PyTypeObject) PyLong_Type;
-
-#define PyLong_Check(op) \
- PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS)
-#define PyLong_CheckExact(op) (Py_TYPE(op) == &PyLong_Type)
-
-PyAPI_FUNC(PyObject *) PyLong_FromLong(long);
-PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLong(unsigned long);
-PyAPI_FUNC(PyObject *) PyLong_FromSize_t(size_t);
-PyAPI_FUNC(PyObject *) PyLong_FromSsize_t(Py_ssize_t);
-PyAPI_FUNC(PyObject *) PyLong_FromDouble(double);
-PyAPI_FUNC(long) PyLong_AsLong(PyObject *);
-PyAPI_FUNC(long) PyLong_AsLongAndOverflow(PyObject *, int *);
-PyAPI_FUNC(Py_ssize_t) PyLong_AsSsize_t(PyObject *);
-PyAPI_FUNC(size_t) PyLong_AsSize_t(PyObject *);
-PyAPI_FUNC(unsigned long) PyLong_AsUnsignedLong(PyObject *);
-PyAPI_FUNC(unsigned long) PyLong_AsUnsignedLongMask(PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyLong_AsInt(PyObject *);
-#endif
-PyAPI_FUNC(PyObject *) PyLong_GetInfo(void);
-
-/* It may be useful in the future. I've added it in the PyInt -> PyLong
- cleanup to keep the extra information. [CH] */
-#define PyLong_AS_LONG(op) PyLong_AsLong(op)
-
-/* Issue #1983: pid_t can be longer than a C long on some systems */
-#if !defined(SIZEOF_PID_T) || SIZEOF_PID_T == SIZEOF_INT
-#define _Py_PARSE_PID "i"
-#define PyLong_FromPid PyLong_FromLong
-#define PyLong_AsPid PyLong_AsLong
-#elif SIZEOF_PID_T == SIZEOF_LONG
-#define _Py_PARSE_PID "l"
-#define PyLong_FromPid PyLong_FromLong
-#define PyLong_AsPid PyLong_AsLong
-#elif defined(SIZEOF_LONG_LONG) && SIZEOF_PID_T == SIZEOF_LONG_LONG
-#define _Py_PARSE_PID "L"
-#define PyLong_FromPid PyLong_FromLongLong
-#define PyLong_AsPid PyLong_AsLongLong
-#else
-#error "sizeof(pid_t) is neither sizeof(int), sizeof(long) or sizeof(long long)"
-#endif /* SIZEOF_PID_T */
-
-#if SIZEOF_VOID_P == SIZEOF_INT
-# define _Py_PARSE_INTPTR "i"
-# define _Py_PARSE_UINTPTR "I"
-#elif SIZEOF_VOID_P == SIZEOF_LONG
-# define _Py_PARSE_INTPTR "l"
-# define _Py_PARSE_UINTPTR "k"
-#elif defined(SIZEOF_LONG_LONG) && SIZEOF_VOID_P == SIZEOF_LONG_LONG
-# define _Py_PARSE_INTPTR "L"
-# define _Py_PARSE_UINTPTR "K"
-#else
-# error "void* different in size from int, long and long long"
-#endif /* SIZEOF_VOID_P */
-
-/* Used by Python/mystrtoul.c, _PyBytes_FromHex(),
- _PyBytes_DecodeEscapeRecode(), etc. */
-#ifndef Py_LIMITED_API
-PyAPI_DATA(unsigned char) _PyLong_DigitValue[256];
-#endif
-
-/* _PyLong_Frexp returns a double x and an exponent e such that the
- true value is approximately equal to x * 2**e. e is >= 0. x is
- 0.0 if and only if the input is 0 (in which case, e and x are both
- zeroes); otherwise, 0.5 <= abs(x) < 1.0. On overflow, which is
- possible if the number of bits doesn't fit into a Py_ssize_t, sets
- OverflowError and returns -1.0 for x, 0 for e. */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(double) _PyLong_Frexp(PyLongObject *a, Py_ssize_t *e);
-#endif
-
-PyAPI_FUNC(double) PyLong_AsDouble(PyObject *);
-PyAPI_FUNC(PyObject *) PyLong_FromVoidPtr(void *);
-PyAPI_FUNC(void *) PyLong_AsVoidPtr(PyObject *);
-
-PyAPI_FUNC(PyObject *) PyLong_FromLongLong(long long);
-PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLongLong(unsigned long long);
-PyAPI_FUNC(long long) PyLong_AsLongLong(PyObject *);
-PyAPI_FUNC(unsigned long long) PyLong_AsUnsignedLongLong(PyObject *);
-PyAPI_FUNC(unsigned long long) PyLong_AsUnsignedLongLongMask(PyObject *);
-PyAPI_FUNC(long long) PyLong_AsLongLongAndOverflow(PyObject *, int *);
-
-PyAPI_FUNC(PyObject *) PyLong_FromString(const char *, char **, int);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) PyLong_FromUnicode(Py_UNICODE*, Py_ssize_t, int) Py_DEPRECATED(3.3);
-PyAPI_FUNC(PyObject *) PyLong_FromUnicodeObject(PyObject *u, int base);
-PyAPI_FUNC(PyObject *) _PyLong_FromBytes(const char *, Py_ssize_t, int);
-#endif
-
-#ifndef Py_LIMITED_API
-/* _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.
- v must not be NULL, and must be a normalized long.
- There are no error cases.
-*/
-PyAPI_FUNC(int) _PyLong_Sign(PyObject *v);
-
-
-/* _PyLong_NumBits. Return the number of bits needed to represent the
- absolute value of a long. For example, this returns 1 for 1 and -1, 2
- for 2 and -2, and 2 for 3 and -3. It returns 0 for 0.
- v must not be NULL, and must be a normalized long.
- (size_t)-1 is returned and OverflowError set if the true result doesn't
- fit in a size_t.
-*/
-PyAPI_FUNC(size_t) _PyLong_NumBits(PyObject *v);
-
-/* _PyLong_DivmodNear. Given integers a and b, compute the nearest
- integer q to the exact quotient a / b, rounding to the nearest even integer
- in the case of a tie. Return (q, r), where r = a - q*b. The remainder r
- will satisfy abs(r) <= abs(b)/2, with equality possible only if q is
- even.
-*/
-PyAPI_FUNC(PyObject *) _PyLong_DivmodNear(PyObject *, PyObject *);
-
-/* _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in
- base 256, and return a Python int with the same numeric value.
- If n is 0, the integer is 0. Else:
- If little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;
- else (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the
- LSB.
- If is_signed is 0/false, view the bytes as a non-negative integer.
- If is_signed is 1/true, view the bytes as a 2's-complement integer,
- non-negative if bit 0x80 of the MSB is clear, negative if set.
- Error returns:
- + Return NULL with the appropriate exception set if there's not
- enough memory to create the Python int.
-*/
-PyAPI_FUNC(PyObject *) _PyLong_FromByteArray(
- const unsigned char* bytes, size_t n,
- int little_endian, int is_signed);
-
-/* _PyLong_AsByteArray: Convert the least-significant 8*n bits of long
- v to a base-256 integer, stored in array bytes. Normally return 0,
- return -1 on error.
- If little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at
- bytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and
- the LSB at bytes[n-1].
- If is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes
- are filled and there's nothing special about bit 0x80 of the MSB.
- If is_signed is 1/true, bytes is filled with the 2's-complement
- representation of v's value. Bit 0x80 of the MSB is the sign bit.
- Error returns (-1):
- + is_signed is 0 and v < 0. TypeError is set in this case, and bytes
- isn't altered.
- + n isn't big enough to hold the full mathematical value of v. For
- example, if is_signed is 0 and there are more digits in the v than
- fit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of
- being large enough to hold a sign bit. OverflowError is set in this
- case, but bytes holds the least-significant n bytes of the true value.
-*/
-PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
- unsigned char* bytes, size_t n,
- int little_endian, int is_signed);
-
-/* _PyLong_FromNbInt: Convert the given object to a PyLongObject
- using the nb_int slot, if available. Raise TypeError if either the
- nb_int slot is not available or the result of the call to nb_int
- returns something not of type int.
-*/
-PyAPI_FUNC(PyLongObject *)_PyLong_FromNbInt(PyObject *);
-
-/* _PyLong_Format: Convert the long to a string object with given base,
- appending a base prefix of 0[box] if base is 2, 8 or 16. */
-PyAPI_FUNC(PyObject *) _PyLong_Format(PyObject *obj, int base);
-
-PyAPI_FUNC(int) _PyLong_FormatWriter(
- _PyUnicodeWriter *writer,
- PyObject *obj,
- int base,
- int alternate);
-
-PyAPI_FUNC(char*) _PyLong_FormatBytesWriter(
- _PyBytesWriter *writer,
- char *str,
- PyObject *obj,
- int base,
- int alternate);
-
-/* Format the object based on the format_spec, as defined in PEP 3101
- (Advanced String Formatting). */
-PyAPI_FUNC(int) _PyLong_FormatAdvancedWriter(
- _PyUnicodeWriter *writer,
- PyObject *obj,
- PyObject *format_spec,
- Py_ssize_t start,
- Py_ssize_t end);
-#endif /* Py_LIMITED_API */
-
-/* These aren't really part of the int object, but they're handy. The
- functions are in Python/mystrtoul.c.
- */
-PyAPI_FUNC(unsigned long) PyOS_strtoul(const char *, char **, int);
-PyAPI_FUNC(long) PyOS_strtol(const char *, char **, int);
-
-#ifndef Py_LIMITED_API
-/* For use by the gcd function in mathmodule.c */
-PyAPI_FUNC(PyObject *) _PyLong_GCD(PyObject *, PyObject *);
-#endif /* !Py_LIMITED_API */
-
-#ifndef Py_LIMITED_API
-PyAPI_DATA(PyObject *) _PyLong_Zero;
-PyAPI_DATA(PyObject *) _PyLong_One;
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_LONGOBJECT_H */
diff --git a/EasyTrans/Include/marshal.h b/EasyTrans/Include/marshal.h
deleted file mode 100644
index 09d9337e..00000000
--- a/EasyTrans/Include/marshal.h
+++ /dev/null
@@ -1,28 +0,0 @@
-
-/* Interface for marshal.c */
-
-#ifndef Py_MARSHAL_H
-#define Py_MARSHAL_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define Py_MARSHAL_VERSION 4
-
-PyAPI_FUNC(void) PyMarshal_WriteLongToFile(long, FILE *, int);
-PyAPI_FUNC(void) PyMarshal_WriteObjectToFile(PyObject *, FILE *, int);
-PyAPI_FUNC(PyObject *) PyMarshal_WriteObjectToString(PyObject *, int);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(long) PyMarshal_ReadLongFromFile(FILE *);
-PyAPI_FUNC(int) PyMarshal_ReadShortFromFile(FILE *);
-PyAPI_FUNC(PyObject *) PyMarshal_ReadObjectFromFile(FILE *);
-PyAPI_FUNC(PyObject *) PyMarshal_ReadLastObjectFromFile(FILE *);
-#endif
-PyAPI_FUNC(PyObject *) PyMarshal_ReadObjectFromString(const char *,
- Py_ssize_t);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_MARSHAL_H */
diff --git a/EasyTrans/Include/memoryobject.h b/EasyTrans/Include/memoryobject.h
deleted file mode 100644
index 990a716f..00000000
--- a/EasyTrans/Include/memoryobject.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Memory view object. In Python this is available as "memoryview". */
-
-#ifndef Py_MEMORYOBJECT_H
-#define Py_MEMORYOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-PyAPI_DATA(PyTypeObject) _PyManagedBuffer_Type;
-#endif
-PyAPI_DATA(PyTypeObject) PyMemoryView_Type;
-
-#define PyMemoryView_Check(op) (Py_TYPE(op) == &PyMemoryView_Type)
-
-#ifndef Py_LIMITED_API
-/* Get a pointer to the memoryview's private copy of the exporter's buffer. */
-#define PyMemoryView_GET_BUFFER(op) (&((PyMemoryViewObject *)(op))->view)
-/* Get a pointer to the exporting object (this may be NULL!). */
-#define PyMemoryView_GET_BASE(op) (((PyMemoryViewObject *)(op))->view.obj)
-#endif
-
-PyAPI_FUNC(PyObject *) PyMemoryView_FromObject(PyObject *base);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(PyObject *) PyMemoryView_FromMemory(char *mem, Py_ssize_t size,
- int flags);
-#endif
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) PyMemoryView_FromBuffer(Py_buffer *info);
-#endif
-PyAPI_FUNC(PyObject *) PyMemoryView_GetContiguous(PyObject *base,
- int buffertype,
- char order);
-
-
-/* The structs are declared here so that macros can work, but they shouldn't
- be considered public. Don't access their fields directly, use the macros
- and functions instead! */
-#ifndef Py_LIMITED_API
-#define _Py_MANAGED_BUFFER_RELEASED 0x001 /* access to exporter blocked */
-#define _Py_MANAGED_BUFFER_FREE_FORMAT 0x002 /* free format */
-typedef struct {
- PyObject_HEAD
- int flags; /* state flags */
- Py_ssize_t exports; /* number of direct memoryview exports */
- Py_buffer master; /* snapshot buffer obtained from the original exporter */
-} _PyManagedBufferObject;
-
-
-/* memoryview state flags */
-#define _Py_MEMORYVIEW_RELEASED 0x001 /* access to master buffer blocked */
-#define _Py_MEMORYVIEW_C 0x002 /* C-contiguous layout */
-#define _Py_MEMORYVIEW_FORTRAN 0x004 /* Fortran contiguous layout */
-#define _Py_MEMORYVIEW_SCALAR 0x008 /* scalar: ndim = 0 */
-#define _Py_MEMORYVIEW_PIL 0x010 /* PIL-style layout */
-
-typedef struct {
- PyObject_VAR_HEAD
- _PyManagedBufferObject *mbuf; /* managed buffer */
- Py_hash_t hash; /* hash value for read-only views */
- int flags; /* state flags */
- Py_ssize_t exports; /* number of buffer re-exports */
- Py_buffer view; /* private copy of the exporter's view */
- PyObject *weakreflist;
- Py_ssize_t ob_array[1]; /* shape, strides, suboffsets */
-} PyMemoryViewObject;
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_MEMORYOBJECT_H */
diff --git a/EasyTrans/Include/metagrammar.h b/EasyTrans/Include/metagrammar.h
deleted file mode 100644
index 15c8ef8f..00000000
--- a/EasyTrans/Include/metagrammar.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef Py_METAGRAMMAR_H
-#define Py_METAGRAMMAR_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#define MSTART 256
-#define RULE 257
-#define RHS 258
-#define ALT 259
-#define ITEM 260
-#define ATOM 261
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_METAGRAMMAR_H */
diff --git a/EasyTrans/Include/methodobject.h b/EasyTrans/Include/methodobject.h
deleted file mode 100644
index ea35d86b..00000000
--- a/EasyTrans/Include/methodobject.h
+++ /dev/null
@@ -1,135 +0,0 @@
-
-/* Method object interface */
-
-#ifndef Py_METHODOBJECT_H
-#define Py_METHODOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* This is about the type 'builtin_function_or_method',
- not Python methods in user-defined classes. See classobject.h
- for the latter. */
-
-PyAPI_DATA(PyTypeObject) PyCFunction_Type;
-
-#define PyCFunction_Check(op) (Py_TYPE(op) == &PyCFunction_Type)
-
-typedef PyObject *(*PyCFunction)(PyObject *, PyObject *);
-typedef PyObject *(*_PyCFunctionFast) (PyObject *, PyObject *const *, Py_ssize_t);
-typedef PyObject *(*PyCFunctionWithKeywords)(PyObject *, PyObject *,
- PyObject *);
-typedef PyObject *(*_PyCFunctionFastWithKeywords) (PyObject *,
- PyObject *const *, Py_ssize_t,
- PyObject *);
-typedef PyObject *(*PyNoArgsFunction)(PyObject *);
-
-PyAPI_FUNC(PyCFunction) PyCFunction_GetFunction(PyObject *);
-PyAPI_FUNC(PyObject *) PyCFunction_GetSelf(PyObject *);
-PyAPI_FUNC(int) PyCFunction_GetFlags(PyObject *);
-
-/* Macros for direct access to these values. Type checks are *not*
- done, so use with care. */
-#ifndef Py_LIMITED_API
-#define PyCFunction_GET_FUNCTION(func) \
- (((PyCFunctionObject *)func) -> m_ml -> ml_meth)
-#define PyCFunction_GET_SELF(func) \
- (((PyCFunctionObject *)func) -> m_ml -> ml_flags & METH_STATIC ? \
- NULL : ((PyCFunctionObject *)func) -> m_self)
-#define PyCFunction_GET_FLAGS(func) \
- (((PyCFunctionObject *)func) -> m_ml -> ml_flags)
-#endif
-PyAPI_FUNC(PyObject *) PyCFunction_Call(PyObject *, PyObject *, PyObject *);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyCFunction_FastCallDict(PyObject *func,
- PyObject *const *args,
- Py_ssize_t nargs,
- PyObject *kwargs);
-
-PyAPI_FUNC(PyObject *) _PyCFunction_FastCallKeywords(PyObject *func,
- PyObject *const *stack,
- Py_ssize_t nargs,
- PyObject *kwnames);
-#endif
-
-struct PyMethodDef {
- const char *ml_name; /* The name of the built-in function/method */
- PyCFunction ml_meth; /* The C function that implements it */
- int ml_flags; /* Combination of METH_xxx flags, which mostly
- describe the args expected by the C func */
- const char *ml_doc; /* The __doc__ attribute, or NULL */
-};
-typedef struct PyMethodDef PyMethodDef;
-
-#define PyCFunction_New(ML, SELF) PyCFunction_NewEx((ML), (SELF), NULL)
-PyAPI_FUNC(PyObject *) PyCFunction_NewEx(PyMethodDef *, PyObject *,
- PyObject *);
-
-/* Flag passed to newmethodobject */
-/* #define METH_OLDARGS 0x0000 -- unsupported now */
-#define METH_VARARGS 0x0001
-#define METH_KEYWORDS 0x0002
-/* METH_NOARGS and METH_O must not be combined with the flags above. */
-#define METH_NOARGS 0x0004
-#define METH_O 0x0008
-
-/* METH_CLASS and METH_STATIC are a little different; these control
- the construction of methods for a class. These cannot be used for
- functions in modules. */
-#define METH_CLASS 0x0010
-#define METH_STATIC 0x0020
-
-/* METH_COEXIST allows a method to be entered even though a slot has
- already filled the entry. When defined, the flag allows a separate
- method, "__contains__" for example, to coexist with a defined
- slot like sq_contains. */
-
-#define METH_COEXIST 0x0040
-
-#ifndef Py_LIMITED_API
-#define METH_FASTCALL 0x0080
-#endif
-
-/* This bit is preserved for Stackless Python */
-#ifdef STACKLESS
-#define METH_STACKLESS 0x0100
-#else
-#define METH_STACKLESS 0x0000
-#endif
-
-#ifndef Py_LIMITED_API
-typedef struct {
- PyObject_HEAD
- PyMethodDef *m_ml; /* Description of the C function to call */
- PyObject *m_self; /* Passed as 'self' arg to the C func, can be NULL */
- PyObject *m_module; /* The __module__ attribute, can be anything */
- PyObject *m_weakreflist; /* List of weak references */
-} PyCFunctionObject;
-
-PyAPI_FUNC(PyObject *) _PyMethodDef_RawFastCallDict(
- PyMethodDef *method,
- PyObject *self,
- PyObject *const *args,
- Py_ssize_t nargs,
- PyObject *kwargs);
-
-PyAPI_FUNC(PyObject *) _PyMethodDef_RawFastCallKeywords(
- PyMethodDef *method,
- PyObject *self,
- PyObject *const *args,
- Py_ssize_t nargs,
- PyObject *kwnames);
-#endif
-
-PyAPI_FUNC(int) PyCFunction_ClearFreeList(void);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyCFunction_DebugMallocStats(FILE *out);
-PyAPI_FUNC(void) _PyMethod_DebugMallocStats(FILE *out);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_METHODOBJECT_H */
diff --git a/EasyTrans/Include/modsupport.h b/EasyTrans/Include/modsupport.h
deleted file mode 100644
index a238bef0..00000000
--- a/EasyTrans/Include/modsupport.h
+++ /dev/null
@@ -1,229 +0,0 @@
-
-#ifndef Py_MODSUPPORT_H
-#define Py_MODSUPPORT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Module support interface */
-
-#include
-
-/* If PY_SSIZE_T_CLEAN is defined, each functions treats #-specifier
- to mean Py_ssize_t */
-#ifdef PY_SSIZE_T_CLEAN
-#define PyArg_Parse _PyArg_Parse_SizeT
-#define PyArg_ParseTuple _PyArg_ParseTuple_SizeT
-#define PyArg_ParseTupleAndKeywords _PyArg_ParseTupleAndKeywords_SizeT
-#define PyArg_VaParse _PyArg_VaParse_SizeT
-#define PyArg_VaParseTupleAndKeywords _PyArg_VaParseTupleAndKeywords_SizeT
-#define Py_BuildValue _Py_BuildValue_SizeT
-#define Py_VaBuildValue _Py_VaBuildValue_SizeT
-#ifndef Py_LIMITED_API
-#define _Py_VaBuildStack _Py_VaBuildStack_SizeT
-#endif
-#else
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _Py_VaBuildValue_SizeT(const char *, va_list);
-PyAPI_FUNC(PyObject **) _Py_VaBuildStack_SizeT(
- PyObject **small_stack,
- Py_ssize_t small_stack_len,
- const char *format,
- va_list va,
- Py_ssize_t *p_nargs);
-#endif /* !Py_LIMITED_API */
-#endif
-
-/* Due to a glitch in 3.2, the _SizeT versions weren't exported from the DLL. */
-#if !defined(PY_SSIZE_T_CLEAN) || !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(int) PyArg_Parse(PyObject *, const char *, ...);
-PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...);
-PyAPI_FUNC(int) PyArg_ParseTupleAndKeywords(PyObject *, PyObject *,
- const char *, char **, ...);
-PyAPI_FUNC(int) PyArg_VaParse(PyObject *, const char *, va_list);
-PyAPI_FUNC(int) PyArg_VaParseTupleAndKeywords(PyObject *, PyObject *,
- const char *, char **, va_list);
-#endif
-PyAPI_FUNC(int) PyArg_ValidateKeywordArguments(PyObject *);
-PyAPI_FUNC(int) PyArg_UnpackTuple(PyObject *, const char *, Py_ssize_t, Py_ssize_t, ...);
-PyAPI_FUNC(PyObject *) Py_BuildValue(const char *, ...);
-PyAPI_FUNC(PyObject *) _Py_BuildValue_SizeT(const char *, ...);
-
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyArg_UnpackStack(
- PyObject *const *args,
- Py_ssize_t nargs,
- const char *name,
- Py_ssize_t min,
- Py_ssize_t max,
- ...);
-
-PyAPI_FUNC(int) _PyArg_NoKeywords(const char *funcname, PyObject *kwargs);
-PyAPI_FUNC(int) _PyArg_NoPositional(const char *funcname, PyObject *args);
-#define _PyArg_NoKeywords(funcname, kwargs) \
- ((kwargs) == NULL || _PyArg_NoKeywords((funcname), (kwargs)))
-#define _PyArg_NoPositional(funcname, args) \
- ((args) == NULL || _PyArg_NoPositional((funcname), (args)))
-
-#endif
-
-PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject **) _Py_VaBuildStack(
- PyObject **small_stack,
- Py_ssize_t small_stack_len,
- const char *format,
- va_list va,
- Py_ssize_t *p_nargs);
-#endif
-
-#ifndef Py_LIMITED_API
-typedef struct _PyArg_Parser {
- const char *format;
- const char * const *keywords;
- const char *fname;
- const char *custom_msg;
- int pos; /* number of positional-only arguments */
- int min; /* minimal number of arguments */
- int max; /* maximal number of positional arguments */
- PyObject *kwtuple; /* tuple of keyword parameter names */
- struct _PyArg_Parser *next;
-} _PyArg_Parser;
-#ifdef PY_SSIZE_T_CLEAN
-#define _PyArg_ParseTupleAndKeywordsFast _PyArg_ParseTupleAndKeywordsFast_SizeT
-#define _PyArg_ParseStack _PyArg_ParseStack_SizeT
-#define _PyArg_ParseStackAndKeywords _PyArg_ParseStackAndKeywords_SizeT
-#define _PyArg_VaParseTupleAndKeywordsFast _PyArg_VaParseTupleAndKeywordsFast_SizeT
-#endif
-PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywordsFast(PyObject *, PyObject *,
- struct _PyArg_Parser *, ...);
-PyAPI_FUNC(int) _PyArg_ParseStack(
- PyObject *const *args,
- Py_ssize_t nargs,
- const char *format,
- ...);
-PyAPI_FUNC(int) _PyArg_ParseStackAndKeywords(
- PyObject *const *args,
- Py_ssize_t nargs,
- PyObject *kwnames,
- struct _PyArg_Parser *,
- ...);
-PyAPI_FUNC(int) _PyArg_VaParseTupleAndKeywordsFast(PyObject *, PyObject *,
- struct _PyArg_Parser *, va_list);
-void _PyArg_Fini(void);
-#endif /* Py_LIMITED_API */
-
-PyAPI_FUNC(int) PyModule_AddObject(PyObject *, const char *, PyObject *);
-PyAPI_FUNC(int) PyModule_AddIntConstant(PyObject *, const char *, long);
-PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char *);
-#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant(m, #c, c)
-#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant(m, #c, c)
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-/* New in 3.5 */
-PyAPI_FUNC(int) PyModule_SetDocString(PyObject *, const char *);
-PyAPI_FUNC(int) PyModule_AddFunctions(PyObject *, PyMethodDef *);
-PyAPI_FUNC(int) PyModule_ExecDef(PyObject *module, PyModuleDef *def);
-#endif
-
-#define Py_CLEANUP_SUPPORTED 0x20000
-
-#define PYTHON_API_VERSION 1013
-#define PYTHON_API_STRING "1013"
-/* The API version is maintained (independently from the Python version)
- so we can detect mismatches between the interpreter and dynamically
- loaded modules. These are diagnosed by an error message but
- the module is still loaded (because the mismatch can only be tested
- after loading the module). The error message is intended to
- explain the core dump a few seconds later.
-
- The symbol PYTHON_API_STRING defines the same value as a string
- literal. *** PLEASE MAKE SURE THE DEFINITIONS MATCH. ***
-
- Please add a line or two to the top of this log for each API
- version change:
-
- 22-Feb-2006 MvL 1013 PEP 353 - long indices for sequence lengths
-
- 19-Aug-2002 GvR 1012 Changes to string object struct for
- interning changes, saving 3 bytes.
-
- 17-Jul-2001 GvR 1011 Descr-branch, just to be on the safe side
-
- 25-Jan-2001 FLD 1010 Parameters added to PyCode_New() and
- PyFrame_New(); Python 2.1a2
-
- 14-Mar-2000 GvR 1009 Unicode API added
-
- 3-Jan-1999 GvR 1007 Decided to change back! (Don't reuse 1008!)
-
- 3-Dec-1998 GvR 1008 Python 1.5.2b1
-
- 18-Jan-1997 GvR 1007 string interning and other speedups
-
- 11-Oct-1996 GvR renamed Py_Ellipses to Py_Ellipsis :-(
-
- 30-Jul-1996 GvR Slice and ellipses syntax added
-
- 23-Jul-1996 GvR For 1.4 -- better safe than sorry this time :-)
-
- 7-Nov-1995 GvR Keyword arguments (should've been done at 1.3 :-( )
-
- 10-Jan-1995 GvR Renamed globals to new naming scheme
-
- 9-Jan-1995 GvR Initial version (incompatible with older API)
-*/
-
-/* The PYTHON_ABI_VERSION is introduced in PEP 384. For the lifetime of
- Python 3, it will stay at the value of 3; changes to the limited API
- must be performed in a strictly backwards-compatible manner. */
-#define PYTHON_ABI_VERSION 3
-#define PYTHON_ABI_STRING "3"
-
-#ifdef Py_TRACE_REFS
- /* When we are tracing reference counts, rename module creation functions so
- modules compiled with incompatible settings will generate a
- link-time error. */
- #define PyModule_Create2 PyModule_Create2TraceRefs
- #define PyModule_FromDefAndSpec2 PyModule_FromDefAndSpec2TraceRefs
-#endif
-
-PyAPI_FUNC(PyObject *) PyModule_Create2(struct PyModuleDef*,
- int apiver);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyModule_CreateInitialized(struct PyModuleDef*,
- int apiver);
-#endif
-
-#ifdef Py_LIMITED_API
-#define PyModule_Create(module) \
- PyModule_Create2(module, PYTHON_ABI_VERSION)
-#else
-#define PyModule_Create(module) \
- PyModule_Create2(module, PYTHON_API_VERSION)
-#endif
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-/* New in 3.5 */
-PyAPI_FUNC(PyObject *) PyModule_FromDefAndSpec2(PyModuleDef *def,
- PyObject *spec,
- int module_api_version);
-
-#ifdef Py_LIMITED_API
-#define PyModule_FromDefAndSpec(module, spec) \
- PyModule_FromDefAndSpec2(module, spec, PYTHON_ABI_VERSION)
-#else
-#define PyModule_FromDefAndSpec(module, spec) \
- PyModule_FromDefAndSpec2(module, spec, PYTHON_API_VERSION)
-#endif /* Py_LIMITED_API */
-#endif /* New in 3.5 */
-
-#ifndef Py_LIMITED_API
-PyAPI_DATA(const char *) _Py_PackageContext;
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_MODSUPPORT_H */
diff --git a/EasyTrans/Include/moduleobject.h b/EasyTrans/Include/moduleobject.h
deleted file mode 100644
index 1d8fe46d..00000000
--- a/EasyTrans/Include/moduleobject.h
+++ /dev/null
@@ -1,89 +0,0 @@
-
-/* Module object interface */
-
-#ifndef Py_MODULEOBJECT_H
-#define Py_MODULEOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_DATA(PyTypeObject) PyModule_Type;
-
-#define PyModule_Check(op) PyObject_TypeCheck(op, &PyModule_Type)
-#define PyModule_CheckExact(op) (Py_TYPE(op) == &PyModule_Type)
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(PyObject *) PyModule_NewObject(
- PyObject *name
- );
-#endif
-PyAPI_FUNC(PyObject *) PyModule_New(
- const char *name /* UTF-8 encoded string */
- );
-PyAPI_FUNC(PyObject *) PyModule_GetDict(PyObject *);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(PyObject *) PyModule_GetNameObject(PyObject *);
-#endif
-PyAPI_FUNC(const char *) PyModule_GetName(PyObject *);
-PyAPI_FUNC(const char *) PyModule_GetFilename(PyObject *) Py_DEPRECATED(3.2);
-PyAPI_FUNC(PyObject *) PyModule_GetFilenameObject(PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyModule_Clear(PyObject *);
-PyAPI_FUNC(void) _PyModule_ClearDict(PyObject *);
-#endif
-PyAPI_FUNC(struct PyModuleDef*) PyModule_GetDef(PyObject*);
-PyAPI_FUNC(void*) PyModule_GetState(PyObject*);
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-/* New in 3.5 */
-PyAPI_FUNC(PyObject *) PyModuleDef_Init(struct PyModuleDef*);
-PyAPI_DATA(PyTypeObject) PyModuleDef_Type;
-#endif
-
-typedef struct PyModuleDef_Base {
- PyObject_HEAD
- PyObject* (*m_init)(void);
- Py_ssize_t m_index;
- PyObject* m_copy;
-} PyModuleDef_Base;
-
-#define PyModuleDef_HEAD_INIT { \
- PyObject_HEAD_INIT(NULL) \
- NULL, /* m_init */ \
- 0, /* m_index */ \
- NULL, /* m_copy */ \
- }
-
-struct PyModuleDef_Slot;
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-/* New in 3.5 */
-typedef struct PyModuleDef_Slot{
- int slot;
- void *value;
-} PyModuleDef_Slot;
-
-#define Py_mod_create 1
-#define Py_mod_exec 2
-
-#ifndef Py_LIMITED_API
-#define _Py_mod_LAST_SLOT 2
-#endif
-
-#endif /* New in 3.5 */
-
-typedef struct PyModuleDef{
- PyModuleDef_Base m_base;
- const char* m_name;
- const char* m_doc;
- Py_ssize_t m_size;
- PyMethodDef *m_methods;
- struct PyModuleDef_Slot* m_slots;
- traverseproc m_traverse;
- inquiry m_clear;
- freefunc m_free;
-} PyModuleDef;
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_MODULEOBJECT_H */
diff --git a/EasyTrans/Include/namespaceobject.h b/EasyTrans/Include/namespaceobject.h
deleted file mode 100644
index 0c8d95c0..00000000
--- a/EasyTrans/Include/namespaceobject.h
+++ /dev/null
@@ -1,19 +0,0 @@
-
-/* simple namespace object interface */
-
-#ifndef NAMESPACEOBJECT_H
-#define NAMESPACEOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-PyAPI_DATA(PyTypeObject) _PyNamespace_Type;
-
-PyAPI_FUNC(PyObject *) _PyNamespace_New(PyObject *kwds);
-#endif /* !Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !NAMESPACEOBJECT_H */
diff --git a/EasyTrans/Include/node.h b/EasyTrans/Include/node.h
deleted file mode 100644
index 40596dfe..00000000
--- a/EasyTrans/Include/node.h
+++ /dev/null
@@ -1,44 +0,0 @@
-
-/* Parse tree node interface */
-
-#ifndef Py_NODE_H
-#define Py_NODE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _node {
- short n_type;
- char *n_str;
- int n_lineno;
- int n_col_offset;
- int n_nchildren;
- struct _node *n_child;
-} node;
-
-PyAPI_FUNC(node *) PyNode_New(int type);
-PyAPI_FUNC(int) PyNode_AddChild(node *n, int type,
- char *str, int lineno, int col_offset);
-PyAPI_FUNC(void) PyNode_Free(node *n);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(Py_ssize_t) _PyNode_SizeOf(node *n);
-#endif
-
-/* Node access functions */
-#define NCH(n) ((n)->n_nchildren)
-
-#define CHILD(n, i) (&(n)->n_child[i])
-#define RCHILD(n, i) (CHILD(n, NCH(n) + i))
-#define TYPE(n) ((n)->n_type)
-#define STR(n) ((n)->n_str)
-#define LINENO(n) ((n)->n_lineno)
-
-/* Assert that the type of a node is what we expect */
-#define REQ(n, type) assert(TYPE(n) == (type))
-
-PyAPI_FUNC(void) PyNode_ListTree(node *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_NODE_H */
diff --git a/EasyTrans/Include/object.h b/EasyTrans/Include/object.h
deleted file mode 100644
index bcf78afe..00000000
--- a/EasyTrans/Include/object.h
+++ /dev/null
@@ -1,1105 +0,0 @@
-#ifndef Py_OBJECT_H
-#define Py_OBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Object and type object interface */
-
-/*
-Objects are structures allocated on the heap. Special rules apply to
-the use of objects to ensure they are properly garbage-collected.
-Objects are never allocated statically or on the stack; they must be
-accessed through special macros and functions only. (Type objects are
-exceptions to the first rule; the standard types are represented by
-statically initialized type objects, although work on type/class unification
-for Python 2.2 made it possible to have heap-allocated type objects too).
-
-An object has a 'reference count' that is increased or decreased when a
-pointer to the object is copied or deleted; when the reference count
-reaches zero there are no references to the object left and it can be
-removed from the heap.
-
-An object has a 'type' that determines what it represents and what kind
-of data it contains. An object's type is fixed when it is created.
-Types themselves are represented as objects; an object contains a
-pointer to the corresponding type object. The type itself has a type
-pointer pointing to the object representing the type 'type', which
-contains a pointer to itself!).
-
-Objects do not float around in memory; once allocated an object keeps
-the same size and address. Objects that must hold variable-size data
-can contain pointers to variable-size parts of the object. Not all
-objects of the same type have the same size; but the size cannot change
-after allocation. (These restrictions are made so a reference to an
-object can be simply a pointer -- moving an object would require
-updating all the pointers, and changing an object's size would require
-moving it if there was another object right next to it.)
-
-Objects are always accessed through pointers of the type 'PyObject *'.
-The type 'PyObject' is a structure that only contains the reference count
-and the type pointer. The actual memory allocated for an object
-contains other data that can only be accessed after casting the pointer
-to a pointer to a longer structure type. This longer type must start
-with the reference count and type fields; the macro PyObject_HEAD should be
-used for this (to accommodate for future changes). The implementation
-of a particular object type can cast the object pointer to the proper
-type and back.
-
-A standard interface exists for objects that contain an array of items
-whose size is determined when the object is allocated.
-*/
-
-/* Py_DEBUG implies Py_TRACE_REFS. */
-#if defined(Py_DEBUG) && !defined(Py_TRACE_REFS)
-#define Py_TRACE_REFS
-#endif
-
-/* Py_TRACE_REFS implies Py_REF_DEBUG. */
-#if defined(Py_TRACE_REFS) && !defined(Py_REF_DEBUG)
-#define Py_REF_DEBUG
-#endif
-
-#if defined(Py_LIMITED_API) && defined(Py_REF_DEBUG)
-#error Py_LIMITED_API is incompatible with Py_DEBUG, Py_TRACE_REFS, and Py_REF_DEBUG
-#endif
-
-
-#ifdef Py_TRACE_REFS
-/* Define pointers to support a doubly-linked list of all live heap objects. */
-#define _PyObject_HEAD_EXTRA \
- struct _object *_ob_next; \
- struct _object *_ob_prev;
-
-#define _PyObject_EXTRA_INIT 0, 0,
-
-#else
-#define _PyObject_HEAD_EXTRA
-#define _PyObject_EXTRA_INIT
-#endif
-
-/* PyObject_HEAD defines the initial segment of every PyObject. */
-#define PyObject_HEAD PyObject ob_base;
-
-#define PyObject_HEAD_INIT(type) \
- { _PyObject_EXTRA_INIT \
- 1, type },
-
-#define PyVarObject_HEAD_INIT(type, size) \
- { PyObject_HEAD_INIT(type) size },
-
-/* PyObject_VAR_HEAD defines the initial segment of all variable-size
- * container objects. These end with a declaration of an array with 1
- * element, but enough space is malloc'ed so that the array actually
- * has room for ob_size elements. Note that ob_size is an element count,
- * not necessarily a byte count.
- */
-#define PyObject_VAR_HEAD PyVarObject ob_base;
-#define Py_INVALID_SIZE (Py_ssize_t)-1
-
-/* Nothing is actually declared to be a PyObject, but every pointer to
- * a Python object can be cast to a PyObject*. This is inheritance built
- * by hand. Similarly every pointer to a variable-size Python object can,
- * in addition, be cast to PyVarObject*.
- */
-typedef struct _object {
- _PyObject_HEAD_EXTRA
- Py_ssize_t ob_refcnt;
- struct _typeobject *ob_type;
-} PyObject;
-
-typedef struct {
- PyObject ob_base;
- Py_ssize_t ob_size; /* Number of items in variable part */
-} PyVarObject;
-
-#define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
-#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
-#define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size)
-
-#ifndef Py_LIMITED_API
-/********************* String Literals ****************************************/
-/* This structure helps managing static strings. The basic usage goes like this:
- Instead of doing
-
- r = PyObject_CallMethod(o, "foo", "args", ...);
-
- do
-
- _Py_IDENTIFIER(foo);
- ...
- r = _PyObject_CallMethodId(o, &PyId_foo, "args", ...);
-
- PyId_foo is a static variable, either on block level or file level. On first
- usage, the string "foo" is interned, and the structures are linked. On interpreter
- shutdown, all strings are released (through _PyUnicode_ClearStaticStrings).
-
- Alternatively, _Py_static_string allows choosing the variable name.
- _PyUnicode_FromId returns a borrowed reference to the interned string.
- _PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*.
-*/
-typedef struct _Py_Identifier {
- struct _Py_Identifier *next;
- const char* string;
- PyObject *object;
-} _Py_Identifier;
-
-#define _Py_static_string_init(value) { .next = NULL, .string = value, .object = NULL }
-#define _Py_static_string(varname, value) static _Py_Identifier varname = _Py_static_string_init(value)
-#define _Py_IDENTIFIER(varname) _Py_static_string(PyId_##varname, #varname)
-
-#endif /* !Py_LIMITED_API */
-
-/*
-Type objects contain a string containing the type name (to help somewhat
-in debugging), the allocation parameters (see PyObject_New() and
-PyObject_NewVar()),
-and methods for accessing objects of the type. Methods are optional, a
-nil pointer meaning that particular kind of access is not available for
-this type. The Py_DECREF() macro uses the tp_dealloc method without
-checking for a nil pointer; it should always be implemented except if
-the implementation can guarantee that the reference count will never
-reach zero (e.g., for statically allocated type objects).
-
-NB: the methods for certain type groups are now contained in separate
-method blocks.
-*/
-
-typedef PyObject * (*unaryfunc)(PyObject *);
-typedef PyObject * (*binaryfunc)(PyObject *, PyObject *);
-typedef PyObject * (*ternaryfunc)(PyObject *, PyObject *, PyObject *);
-typedef int (*inquiry)(PyObject *);
-typedef Py_ssize_t (*lenfunc)(PyObject *);
-typedef PyObject *(*ssizeargfunc)(PyObject *, Py_ssize_t);
-typedef PyObject *(*ssizessizeargfunc)(PyObject *, Py_ssize_t, Py_ssize_t);
-typedef int(*ssizeobjargproc)(PyObject *, Py_ssize_t, PyObject *);
-typedef int(*ssizessizeobjargproc)(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *);
-typedef int(*objobjargproc)(PyObject *, PyObject *, PyObject *);
-
-#ifndef Py_LIMITED_API
-/* buffer interface */
-typedef struct bufferinfo {
- void *buf;
- PyObject *obj; /* owned reference */
- Py_ssize_t len;
- Py_ssize_t itemsize; /* This is Py_ssize_t so it can be
- pointed to by strides in simple case.*/
- int readonly;
- int ndim;
- char *format;
- Py_ssize_t *shape;
- Py_ssize_t *strides;
- Py_ssize_t *suboffsets;
- void *internal;
-} Py_buffer;
-
-typedef int (*getbufferproc)(PyObject *, Py_buffer *, int);
-typedef void (*releasebufferproc)(PyObject *, Py_buffer *);
-
-/* Maximum number of dimensions */
-#define PyBUF_MAX_NDIM 64
-
-/* Flags for getting buffers */
-#define PyBUF_SIMPLE 0
-#define PyBUF_WRITABLE 0x0001
-/* we used to include an E, backwards compatible alias */
-#define PyBUF_WRITEABLE PyBUF_WRITABLE
-#define PyBUF_FORMAT 0x0004
-#define PyBUF_ND 0x0008
-#define PyBUF_STRIDES (0x0010 | PyBUF_ND)
-#define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
-#define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
-#define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
-#define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
-
-#define PyBUF_CONTIG (PyBUF_ND | PyBUF_WRITABLE)
-#define PyBUF_CONTIG_RO (PyBUF_ND)
-
-#define PyBUF_STRIDED (PyBUF_STRIDES | PyBUF_WRITABLE)
-#define PyBUF_STRIDED_RO (PyBUF_STRIDES)
-
-#define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_WRITABLE | PyBUF_FORMAT)
-#define PyBUF_RECORDS_RO (PyBUF_STRIDES | PyBUF_FORMAT)
-
-#define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_WRITABLE | PyBUF_FORMAT)
-#define PyBUF_FULL_RO (PyBUF_INDIRECT | PyBUF_FORMAT)
-
-
-#define PyBUF_READ 0x100
-#define PyBUF_WRITE 0x200
-
-/* End buffer interface */
-#endif /* Py_LIMITED_API */
-
-typedef int (*objobjproc)(PyObject *, PyObject *);
-typedef int (*visitproc)(PyObject *, void *);
-typedef int (*traverseproc)(PyObject *, visitproc, void *);
-
-#ifndef Py_LIMITED_API
-typedef struct {
- /* Number implementations must check *both*
- arguments for proper type and implement the necessary conversions
- in the slot functions themselves. */
-
- binaryfunc nb_add;
- binaryfunc nb_subtract;
- binaryfunc nb_multiply;
- binaryfunc nb_remainder;
- binaryfunc nb_divmod;
- ternaryfunc nb_power;
- unaryfunc nb_negative;
- unaryfunc nb_positive;
- unaryfunc nb_absolute;
- inquiry nb_bool;
- unaryfunc nb_invert;
- binaryfunc nb_lshift;
- binaryfunc nb_rshift;
- binaryfunc nb_and;
- binaryfunc nb_xor;
- binaryfunc nb_or;
- unaryfunc nb_int;
- void *nb_reserved; /* the slot formerly known as nb_long */
- unaryfunc nb_float;
-
- binaryfunc nb_inplace_add;
- binaryfunc nb_inplace_subtract;
- binaryfunc nb_inplace_multiply;
- binaryfunc nb_inplace_remainder;
- ternaryfunc nb_inplace_power;
- binaryfunc nb_inplace_lshift;
- binaryfunc nb_inplace_rshift;
- binaryfunc nb_inplace_and;
- binaryfunc nb_inplace_xor;
- binaryfunc nb_inplace_or;
-
- binaryfunc nb_floor_divide;
- binaryfunc nb_true_divide;
- binaryfunc nb_inplace_floor_divide;
- binaryfunc nb_inplace_true_divide;
-
- unaryfunc nb_index;
-
- binaryfunc nb_matrix_multiply;
- binaryfunc nb_inplace_matrix_multiply;
-} PyNumberMethods;
-
-typedef struct {
- lenfunc sq_length;
- binaryfunc sq_concat;
- ssizeargfunc sq_repeat;
- ssizeargfunc sq_item;
- void *was_sq_slice;
- ssizeobjargproc sq_ass_item;
- void *was_sq_ass_slice;
- objobjproc sq_contains;
-
- binaryfunc sq_inplace_concat;
- ssizeargfunc sq_inplace_repeat;
-} PySequenceMethods;
-
-typedef struct {
- lenfunc mp_length;
- binaryfunc mp_subscript;
- objobjargproc mp_ass_subscript;
-} PyMappingMethods;
-
-typedef struct {
- unaryfunc am_await;
- unaryfunc am_aiter;
- unaryfunc am_anext;
-} PyAsyncMethods;
-
-typedef struct {
- getbufferproc bf_getbuffer;
- releasebufferproc bf_releasebuffer;
-} PyBufferProcs;
-#endif /* Py_LIMITED_API */
-
-typedef void (*freefunc)(void *);
-typedef void (*destructor)(PyObject *);
-#ifndef Py_LIMITED_API
-/* We can't provide a full compile-time check that limited-API
- users won't implement tp_print. However, not defining printfunc
- and making tp_print of a different function pointer type
- should at least cause a warning in most cases. */
-typedef int (*printfunc)(PyObject *, FILE *, int);
-#endif
-typedef PyObject *(*getattrfunc)(PyObject *, char *);
-typedef PyObject *(*getattrofunc)(PyObject *, PyObject *);
-typedef int (*setattrfunc)(PyObject *, char *, PyObject *);
-typedef int (*setattrofunc)(PyObject *, PyObject *, PyObject *);
-typedef PyObject *(*reprfunc)(PyObject *);
-typedef Py_hash_t (*hashfunc)(PyObject *);
-typedef PyObject *(*richcmpfunc) (PyObject *, PyObject *, int);
-typedef PyObject *(*getiterfunc) (PyObject *);
-typedef PyObject *(*iternextfunc) (PyObject *);
-typedef PyObject *(*descrgetfunc) (PyObject *, PyObject *, PyObject *);
-typedef int (*descrsetfunc) (PyObject *, PyObject *, PyObject *);
-typedef int (*initproc)(PyObject *, PyObject *, PyObject *);
-typedef PyObject *(*newfunc)(struct _typeobject *, PyObject *, PyObject *);
-typedef PyObject *(*allocfunc)(struct _typeobject *, Py_ssize_t);
-
-#ifdef Py_LIMITED_API
-typedef struct _typeobject PyTypeObject; /* opaque */
-#else
-typedef struct _typeobject {
- PyObject_VAR_HEAD
- const char *tp_name; /* For printing, in format "." */
- Py_ssize_t tp_basicsize, tp_itemsize; /* For allocation */
-
- /* Methods to implement standard operations */
-
- destructor tp_dealloc;
- printfunc tp_print;
- getattrfunc tp_getattr;
- setattrfunc tp_setattr;
- PyAsyncMethods *tp_as_async; /* formerly known as tp_compare (Python 2)
- or tp_reserved (Python 3) */
- reprfunc tp_repr;
-
- /* Method suites for standard classes */
-
- PyNumberMethods *tp_as_number;
- PySequenceMethods *tp_as_sequence;
- PyMappingMethods *tp_as_mapping;
-
- /* More standard operations (here for binary compatibility) */
-
- hashfunc tp_hash;
- ternaryfunc tp_call;
- reprfunc tp_str;
- getattrofunc tp_getattro;
- setattrofunc tp_setattro;
-
- /* Functions to access object as input/output buffer */
- PyBufferProcs *tp_as_buffer;
-
- /* Flags to define presence of optional/expanded features */
- unsigned long tp_flags;
-
- const char *tp_doc; /* Documentation string */
-
- /* Assigned meaning in release 2.0 */
- /* call function for all accessible objects */
- traverseproc tp_traverse;
-
- /* delete references to contained objects */
- inquiry tp_clear;
-
- /* Assigned meaning in release 2.1 */
- /* rich comparisons */
- richcmpfunc tp_richcompare;
-
- /* weak reference enabler */
- Py_ssize_t tp_weaklistoffset;
-
- /* Iterators */
- getiterfunc tp_iter;
- iternextfunc tp_iternext;
-
- /* Attribute descriptor and subclassing stuff */
- struct PyMethodDef *tp_methods;
- struct PyMemberDef *tp_members;
- struct PyGetSetDef *tp_getset;
- struct _typeobject *tp_base;
- PyObject *tp_dict;
- descrgetfunc tp_descr_get;
- descrsetfunc tp_descr_set;
- Py_ssize_t tp_dictoffset;
- initproc tp_init;
- allocfunc tp_alloc;
- newfunc tp_new;
- freefunc tp_free; /* Low-level free-memory routine */
- inquiry tp_is_gc; /* For PyObject_IS_GC */
- PyObject *tp_bases;
- PyObject *tp_mro; /* method resolution order */
- PyObject *tp_cache;
- PyObject *tp_subclasses;
- PyObject *tp_weaklist;
- destructor tp_del;
-
- /* Type attribute cache version tag. Added in version 2.6 */
- unsigned int tp_version_tag;
-
- destructor tp_finalize;
-
-#ifdef COUNT_ALLOCS
- /* these must be last and never explicitly initialized */
- Py_ssize_t tp_allocs;
- Py_ssize_t tp_frees;
- Py_ssize_t tp_maxalloc;
- struct _typeobject *tp_prev;
- struct _typeobject *tp_next;
-#endif
-} PyTypeObject;
-#endif
-
-typedef struct{
- int slot; /* slot id, see below */
- void *pfunc; /* function pointer */
-} PyType_Slot;
-
-typedef struct{
- const char* name;
- int basicsize;
- int itemsize;
- unsigned int flags;
- PyType_Slot *slots; /* terminated by slot==0. */
-} PyType_Spec;
-
-PyAPI_FUNC(PyObject*) PyType_FromSpec(PyType_Spec*);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(PyObject*) PyType_FromSpecWithBases(PyType_Spec*, PyObject*);
-#endif
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03040000
-PyAPI_FUNC(void*) PyType_GetSlot(PyTypeObject*, int);
-#endif
-
-#ifndef Py_LIMITED_API
-/* The *real* layout of a type object when allocated on the heap */
-typedef struct _heaptypeobject {
- /* Note: there's a dependency on the order of these members
- in slotptr() in typeobject.c . */
- PyTypeObject ht_type;
- PyAsyncMethods as_async;
- PyNumberMethods as_number;
- PyMappingMethods as_mapping;
- PySequenceMethods as_sequence; /* as_sequence comes after as_mapping,
- so that the mapping wins when both
- the mapping and the sequence define
- a given operator (e.g. __getitem__).
- see add_operators() in typeobject.c . */
- PyBufferProcs as_buffer;
- PyObject *ht_name, *ht_slots, *ht_qualname;
- struct _dictkeysobject *ht_cached_keys;
- /* here are optional user slots, followed by the members. */
-} PyHeapTypeObject;
-
-/* access macro to the members which are floating "behind" the object */
-#define PyHeapType_GET_MEMBERS(etype) \
- ((PyMemberDef *)(((char *)etype) + Py_TYPE(etype)->tp_basicsize))
-#endif
-
-/* Generic type check */
-PyAPI_FUNC(int) PyType_IsSubtype(PyTypeObject *, PyTypeObject *);
-#define PyObject_TypeCheck(ob, tp) \
- (Py_TYPE(ob) == (tp) || PyType_IsSubtype(Py_TYPE(ob), (tp)))
-
-PyAPI_DATA(PyTypeObject) PyType_Type; /* built-in 'type' */
-PyAPI_DATA(PyTypeObject) PyBaseObject_Type; /* built-in 'object' */
-PyAPI_DATA(PyTypeObject) PySuper_Type; /* built-in 'super' */
-
-PyAPI_FUNC(unsigned long) PyType_GetFlags(PyTypeObject*);
-
-#define PyType_Check(op) \
- PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TYPE_SUBCLASS)
-#define PyType_CheckExact(op) (Py_TYPE(op) == &PyType_Type)
-
-PyAPI_FUNC(int) PyType_Ready(PyTypeObject *);
-PyAPI_FUNC(PyObject *) PyType_GenericAlloc(PyTypeObject *, Py_ssize_t);
-PyAPI_FUNC(PyObject *) PyType_GenericNew(PyTypeObject *,
- PyObject *, PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(const char *) _PyType_Name(PyTypeObject *);
-PyAPI_FUNC(PyObject *) _PyType_Lookup(PyTypeObject *, PyObject *);
-PyAPI_FUNC(PyObject *) _PyType_LookupId(PyTypeObject *, _Py_Identifier *);
-PyAPI_FUNC(PyObject *) _PyObject_LookupSpecial(PyObject *, _Py_Identifier *);
-PyAPI_FUNC(PyTypeObject *) _PyType_CalculateMetaclass(PyTypeObject *, PyObject *);
-#endif
-PyAPI_FUNC(unsigned int) PyType_ClearCache(void);
-PyAPI_FUNC(void) PyType_Modified(PyTypeObject *);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyType_GetDocFromInternalDoc(const char *, const char *);
-PyAPI_FUNC(PyObject *) _PyType_GetTextSignatureFromInternalDoc(const char *, const char *);
-#endif
-
-/* Generic operations on objects */
-#ifndef Py_LIMITED_API
-struct _Py_Identifier;
-PyAPI_FUNC(int) PyObject_Print(PyObject *, FILE *, int);
-PyAPI_FUNC(void) _Py_BreakPoint(void);
-PyAPI_FUNC(void) _PyObject_Dump(PyObject *);
-PyAPI_FUNC(int) _PyObject_IsFreed(PyObject *);
-#endif
-PyAPI_FUNC(PyObject *) PyObject_Repr(PyObject *);
-PyAPI_FUNC(PyObject *) PyObject_Str(PyObject *);
-PyAPI_FUNC(PyObject *) PyObject_ASCII(PyObject *);
-PyAPI_FUNC(PyObject *) PyObject_Bytes(PyObject *);
-PyAPI_FUNC(PyObject *) PyObject_RichCompare(PyObject *, PyObject *, int);
-PyAPI_FUNC(int) PyObject_RichCompareBool(PyObject *, PyObject *, int);
-PyAPI_FUNC(PyObject *) PyObject_GetAttrString(PyObject *, const char *);
-PyAPI_FUNC(int) PyObject_SetAttrString(PyObject *, const char *, PyObject *);
-PyAPI_FUNC(int) PyObject_HasAttrString(PyObject *, const char *);
-PyAPI_FUNC(PyObject *) PyObject_GetAttr(PyObject *, PyObject *);
-PyAPI_FUNC(int) PyObject_SetAttr(PyObject *, PyObject *, PyObject *);
-PyAPI_FUNC(int) PyObject_HasAttr(PyObject *, PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyObject_IsAbstract(PyObject *);
-PyAPI_FUNC(PyObject *) _PyObject_GetAttrId(PyObject *, struct _Py_Identifier *);
-PyAPI_FUNC(int) _PyObject_SetAttrId(PyObject *, struct _Py_Identifier *, PyObject *);
-PyAPI_FUNC(int) _PyObject_HasAttrId(PyObject *, struct _Py_Identifier *);
-/* Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which
- don't raise AttributeError.
-
- Return 1 and set *result != NULL if an attribute is found.
- Return 0 and set *result == NULL if an attribute is not found;
- an AttributeError is silenced.
- Return -1 and set *result == NULL if an error other than AttributeError
- is raised.
-*/
-PyAPI_FUNC(int) _PyObject_LookupAttr(PyObject *, PyObject *, PyObject **);
-PyAPI_FUNC(int) _PyObject_LookupAttrId(PyObject *, struct _Py_Identifier *, PyObject **);
-PyAPI_FUNC(PyObject **) _PyObject_GetDictPtr(PyObject *);
-#endif
-PyAPI_FUNC(PyObject *) PyObject_SelfIter(PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyObject_NextNotImplemented(PyObject *);
-#endif
-PyAPI_FUNC(PyObject *) PyObject_GenericGetAttr(PyObject *, PyObject *);
-PyAPI_FUNC(int) PyObject_GenericSetAttr(PyObject *,
- PyObject *, PyObject *);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(int) PyObject_GenericSetDict(PyObject *, PyObject *, void *);
-#endif
-PyAPI_FUNC(Py_hash_t) PyObject_Hash(PyObject *);
-PyAPI_FUNC(Py_hash_t) PyObject_HashNotImplemented(PyObject *);
-PyAPI_FUNC(int) PyObject_IsTrue(PyObject *);
-PyAPI_FUNC(int) PyObject_Not(PyObject *);
-PyAPI_FUNC(int) PyCallable_Check(PyObject *);
-
-PyAPI_FUNC(void) PyObject_ClearWeakRefs(PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) PyObject_CallFinalizer(PyObject *);
-PyAPI_FUNC(int) PyObject_CallFinalizerFromDealloc(PyObject *);
-#endif
-
-#ifndef Py_LIMITED_API
-/* Same as PyObject_Generic{Get,Set}Attr, but passing the attributes
- dict as the last parameter. */
-PyAPI_FUNC(PyObject *)
-_PyObject_GenericGetAttrWithDict(PyObject *, PyObject *, PyObject *, int);
-PyAPI_FUNC(int)
-_PyObject_GenericSetAttrWithDict(PyObject *, PyObject *,
- PyObject *, PyObject *);
-#endif /* !Py_LIMITED_API */
-
-/* Helper to look up a builtin object */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *)
-_PyObject_GetBuiltin(const char *name);
-#endif
-
-/* PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a
- list of strings. PyObject_Dir(NULL) is like builtins.dir(),
- returning the names of the current locals. In this case, if there are
- no current locals, NULL is returned, and PyErr_Occurred() is false.
-*/
-PyAPI_FUNC(PyObject *) PyObject_Dir(PyObject *);
-
-
-/* Helpers for printing recursive container types */
-PyAPI_FUNC(int) Py_ReprEnter(PyObject *);
-PyAPI_FUNC(void) Py_ReprLeave(PyObject *);
-
-/* Flag bits for printing: */
-#define Py_PRINT_RAW 1 /* No string quotes etc. */
-
-/*
-`Type flags (tp_flags)
-
-These flags are used to extend the type structure in a backwards-compatible
-fashion. Extensions can use the flags to indicate (and test) when a given
-type structure contains a new feature. The Python core will use these when
-introducing new functionality between major revisions (to avoid mid-version
-changes in the PYTHON_API_VERSION).
-
-Arbitration of the flag bit positions will need to be coordinated among
-all extension writers who publicly release their extensions (this will
-be fewer than you might expect!)..
-
-Most flags were removed as of Python 3.0 to make room for new flags. (Some
-flags are not for backwards compatibility but to indicate the presence of an
-optional feature; these flags remain of course.)
-
-Type definitions should use Py_TPFLAGS_DEFAULT for their tp_flags value.
-
-Code can use PyType_HasFeature(type_ob, flag_value) to test whether the
-given type object has a specified feature.
-*/
-
-/* Set if the type object is dynamically allocated */
-#define Py_TPFLAGS_HEAPTYPE (1UL << 9)
-
-/* Set if the type allows subclassing */
-#define Py_TPFLAGS_BASETYPE (1UL << 10)
-
-/* Set if the type is 'ready' -- fully initialized */
-#define Py_TPFLAGS_READY (1UL << 12)
-
-/* Set while the type is being 'readied', to prevent recursive ready calls */
-#define Py_TPFLAGS_READYING (1UL << 13)
-
-/* Objects support garbage collection (see objimp.h) */
-#define Py_TPFLAGS_HAVE_GC (1UL << 14)
-
-/* These two bits are preserved for Stackless Python, next after this is 17 */
-#ifdef STACKLESS
-#define Py_TPFLAGS_HAVE_STACKLESS_EXTENSION (3UL << 15)
-#else
-#define Py_TPFLAGS_HAVE_STACKLESS_EXTENSION 0
-#endif
-
-/* Objects support type attribute cache */
-#define Py_TPFLAGS_HAVE_VERSION_TAG (1UL << 18)
-#define Py_TPFLAGS_VALID_VERSION_TAG (1UL << 19)
-
-/* Type is abstract and cannot be instantiated */
-#define Py_TPFLAGS_IS_ABSTRACT (1UL << 20)
-
-/* These flags are used to determine if a type is a subclass. */
-#define Py_TPFLAGS_LONG_SUBCLASS (1UL << 24)
-#define Py_TPFLAGS_LIST_SUBCLASS (1UL << 25)
-#define Py_TPFLAGS_TUPLE_SUBCLASS (1UL << 26)
-#define Py_TPFLAGS_BYTES_SUBCLASS (1UL << 27)
-#define Py_TPFLAGS_UNICODE_SUBCLASS (1UL << 28)
-#define Py_TPFLAGS_DICT_SUBCLASS (1UL << 29)
-#define Py_TPFLAGS_BASE_EXC_SUBCLASS (1UL << 30)
-#define Py_TPFLAGS_TYPE_SUBCLASS (1UL << 31)
-
-#define Py_TPFLAGS_DEFAULT ( \
- Py_TPFLAGS_HAVE_STACKLESS_EXTENSION | \
- Py_TPFLAGS_HAVE_VERSION_TAG | \
- 0)
-
-/* NOTE: The following flags reuse lower bits (removed as part of the
- * Python 3.0 transition). */
-
-/* Type structure has tp_finalize member (3.4) */
-#define Py_TPFLAGS_HAVE_FINALIZE (1UL << 0)
-
-#ifdef Py_LIMITED_API
-#define PyType_HasFeature(t,f) ((PyType_GetFlags(t) & (f)) != 0)
-#else
-#define PyType_HasFeature(t,f) (((t)->tp_flags & (f)) != 0)
-#endif
-#define PyType_FastSubclass(t,f) PyType_HasFeature(t,f)
-
-
-/*
-The macros Py_INCREF(op) and Py_DECREF(op) are used to increment or decrement
-reference counts. Py_DECREF calls the object's deallocator function when
-the refcount falls to 0; for
-objects that don't contain references to other objects or heap memory
-this can be the standard function free(). Both macros can be used
-wherever a void expression is allowed. The argument must not be a
-NULL pointer. If it may be NULL, use Py_XINCREF/Py_XDECREF instead.
-The macro _Py_NewReference(op) initialize reference counts to 1, and
-in special builds (Py_REF_DEBUG, Py_TRACE_REFS) performs additional
-bookkeeping appropriate to the special build.
-
-We assume that the reference count field can never overflow; this can
-be proven when the size of the field is the same as the pointer size, so
-we ignore the possibility. Provided a C int is at least 32 bits (which
-is implicitly assumed in many parts of this code), that's enough for
-about 2**31 references to an object.
-
-XXX The following became out of date in Python 2.2, but I'm not sure
-XXX what the full truth is now. Certainly, heap-allocated type objects
-XXX can and should be deallocated.
-Type objects should never be deallocated; the type pointer in an object
-is not considered to be a reference to the type object, to save
-complications in the deallocation function. (This is actually a
-decision that's up to the implementer of each new type so if you want,
-you can count such references to the type object.)
-*/
-
-/* First define a pile of simple helper macros, one set per special
- * build symbol. These either expand to the obvious things, or to
- * nothing at all when the special mode isn't in effect. The main
- * macros can later be defined just once then, yet expand to different
- * things depending on which special build options are and aren't in effect.
- * Trust me : while painful, this is 20x easier to understand than,
- * e.g, defining _Py_NewReference five different times in a maze of nested
- * #ifdefs (we used to do that -- it was impenetrable).
- */
-#ifdef Py_REF_DEBUG
-PyAPI_DATA(Py_ssize_t) _Py_RefTotal;
-PyAPI_FUNC(void) _Py_NegativeRefcount(const char *fname,
- int lineno, PyObject *op);
-PyAPI_FUNC(Py_ssize_t) _Py_GetRefTotal(void);
-#define _Py_INC_REFTOTAL _Py_RefTotal++
-#define _Py_DEC_REFTOTAL _Py_RefTotal--
-#define _Py_REF_DEBUG_COMMA ,
-#define _Py_CHECK_REFCNT(OP) \
-{ if (((PyObject*)OP)->ob_refcnt < 0) \
- _Py_NegativeRefcount(__FILE__, __LINE__, \
- (PyObject *)(OP)); \
-}
-/* Py_REF_DEBUG also controls the display of refcounts and memory block
- * allocations at the interactive prompt and at interpreter shutdown
- */
-PyAPI_FUNC(void) _PyDebug_PrintTotalRefs(void);
-#else
-#define _Py_INC_REFTOTAL
-#define _Py_DEC_REFTOTAL
-#define _Py_REF_DEBUG_COMMA
-#define _Py_CHECK_REFCNT(OP) /* a semicolon */;
-#endif /* Py_REF_DEBUG */
-
-#ifdef COUNT_ALLOCS
-PyAPI_FUNC(void) inc_count(PyTypeObject *);
-PyAPI_FUNC(void) dec_count(PyTypeObject *);
-#define _Py_INC_TPALLOCS(OP) inc_count(Py_TYPE(OP))
-#define _Py_INC_TPFREES(OP) dec_count(Py_TYPE(OP))
-#define _Py_DEC_TPFREES(OP) Py_TYPE(OP)->tp_frees--
-#define _Py_COUNT_ALLOCS_COMMA ,
-#else
-#define _Py_INC_TPALLOCS(OP)
-#define _Py_INC_TPFREES(OP)
-#define _Py_DEC_TPFREES(OP)
-#define _Py_COUNT_ALLOCS_COMMA
-#endif /* COUNT_ALLOCS */
-
-#ifdef Py_TRACE_REFS
-/* Py_TRACE_REFS is such major surgery that we call external routines. */
-PyAPI_FUNC(void) _Py_NewReference(PyObject *);
-PyAPI_FUNC(void) _Py_ForgetReference(PyObject *);
-PyAPI_FUNC(void) _Py_Dealloc(PyObject *);
-PyAPI_FUNC(void) _Py_PrintReferences(FILE *);
-PyAPI_FUNC(void) _Py_PrintReferenceAddresses(FILE *);
-PyAPI_FUNC(void) _Py_AddToAllObjects(PyObject *, int force);
-
-#else
-/* Without Py_TRACE_REFS, there's little enough to do that we expand code
- * inline.
- */
-#define _Py_NewReference(op) ( \
- _Py_INC_TPALLOCS(op) _Py_COUNT_ALLOCS_COMMA \
- _Py_INC_REFTOTAL _Py_REF_DEBUG_COMMA \
- Py_REFCNT(op) = 1)
-
-#define _Py_ForgetReference(op) _Py_INC_TPFREES(op)
-
-#ifdef Py_LIMITED_API
-PyAPI_FUNC(void) _Py_Dealloc(PyObject *);
-#else
-#define _Py_Dealloc(op) ( \
- _Py_INC_TPFREES(op) _Py_COUNT_ALLOCS_COMMA \
- (*Py_TYPE(op)->tp_dealloc)((PyObject *)(op)))
-#endif
-#endif /* !Py_TRACE_REFS */
-
-#define Py_INCREF(op) ( \
- _Py_INC_REFTOTAL _Py_REF_DEBUG_COMMA \
- ((PyObject *)(op))->ob_refcnt++)
-
-#define Py_DECREF(op) \
- do { \
- PyObject *_py_decref_tmp = (PyObject *)(op); \
- if (_Py_DEC_REFTOTAL _Py_REF_DEBUG_COMMA \
- --(_py_decref_tmp)->ob_refcnt != 0) \
- _Py_CHECK_REFCNT(_py_decref_tmp) \
- else \
- _Py_Dealloc(_py_decref_tmp); \
- } while (0)
-
-/* Safely decref `op` and set `op` to NULL, especially useful in tp_clear
- * and tp_dealloc implementations.
- *
- * Note that "the obvious" code can be deadly:
- *
- * Py_XDECREF(op);
- * op = NULL;
- *
- * Typically, `op` is something like self->containee, and `self` is done
- * using its `containee` member. In the code sequence above, suppose
- * `containee` is non-NULL with a refcount of 1. Its refcount falls to
- * 0 on the first line, which can trigger an arbitrary amount of code,
- * possibly including finalizers (like __del__ methods or weakref callbacks)
- * coded in Python, which in turn can release the GIL and allow other threads
- * to run, etc. Such code may even invoke methods of `self` again, or cause
- * cyclic gc to trigger, but-- oops! --self->containee still points to the
- * object being torn down, and it may be in an insane state while being torn
- * down. This has in fact been a rich historic source of miserable (rare &
- * hard-to-diagnose) segfaulting (and other) bugs.
- *
- * The safe way is:
- *
- * Py_CLEAR(op);
- *
- * That arranges to set `op` to NULL _before_ decref'ing, so that any code
- * triggered as a side-effect of `op` getting torn down no longer believes
- * `op` points to a valid object.
- *
- * There are cases where it's safe to use the naive code, but they're brittle.
- * For example, if `op` points to a Python integer, you know that destroying
- * one of those can't cause problems -- but in part that relies on that
- * Python integers aren't currently weakly referencable. Best practice is
- * to use Py_CLEAR() even if you can't think of a reason for why you need to.
- */
-#define Py_CLEAR(op) \
- do { \
- PyObject *_py_tmp = (PyObject *)(op); \
- if (_py_tmp != NULL) { \
- (op) = NULL; \
- Py_DECREF(_py_tmp); \
- } \
- } while (0)
-
-/* Macros to use in case the object pointer may be NULL: */
-#define Py_XINCREF(op) \
- do { \
- PyObject *_py_xincref_tmp = (PyObject *)(op); \
- if (_py_xincref_tmp != NULL) \
- Py_INCREF(_py_xincref_tmp); \
- } while (0)
-
-#define Py_XDECREF(op) \
- do { \
- PyObject *_py_xdecref_tmp = (PyObject *)(op); \
- if (_py_xdecref_tmp != NULL) \
- Py_DECREF(_py_xdecref_tmp); \
- } while (0)
-
-#ifndef Py_LIMITED_API
-/* Safely decref `op` and set `op` to `op2`.
- *
- * As in case of Py_CLEAR "the obvious" code can be deadly:
- *
- * Py_DECREF(op);
- * op = op2;
- *
- * The safe way is:
- *
- * Py_SETREF(op, op2);
- *
- * That arranges to set `op` to `op2` _before_ decref'ing, so that any code
- * triggered as a side-effect of `op` getting torn down no longer believes
- * `op` points to a valid object.
- *
- * Py_XSETREF is a variant of Py_SETREF that uses Py_XDECREF instead of
- * Py_DECREF.
- */
-
-#define Py_SETREF(op, op2) \
- do { \
- PyObject *_py_tmp = (PyObject *)(op); \
- (op) = (op2); \
- Py_DECREF(_py_tmp); \
- } while (0)
-
-#define Py_XSETREF(op, op2) \
- do { \
- PyObject *_py_tmp = (PyObject *)(op); \
- (op) = (op2); \
- Py_XDECREF(_py_tmp); \
- } while (0)
-
-#endif /* ifndef Py_LIMITED_API */
-
-/*
-These are provided as conveniences to Python runtime embedders, so that
-they can have object code that is not dependent on Python compilation flags.
-*/
-PyAPI_FUNC(void) Py_IncRef(PyObject *);
-PyAPI_FUNC(void) Py_DecRef(PyObject *);
-
-#ifndef Py_LIMITED_API
-PyAPI_DATA(PyTypeObject) _PyNone_Type;
-PyAPI_DATA(PyTypeObject) _PyNotImplemented_Type;
-#endif /* !Py_LIMITED_API */
-
-/*
-_Py_NoneStruct is an object of undefined type which can be used in contexts
-where NULL (nil) is not suitable (since NULL often means 'error').
-
-Don't forget to apply Py_INCREF() when returning this value!!!
-*/
-PyAPI_DATA(PyObject) _Py_NoneStruct; /* Don't use this directly */
-#define Py_None (&_Py_NoneStruct)
-
-/* Macro for returning Py_None from a function */
-#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None
-
-/*
-Py_NotImplemented is a singleton used to signal that an operation is
-not implemented for a given type combination.
-*/
-PyAPI_DATA(PyObject) _Py_NotImplementedStruct; /* Don't use this directly */
-#define Py_NotImplemented (&_Py_NotImplementedStruct)
-
-/* Macro for returning Py_NotImplemented from a function */
-#define Py_RETURN_NOTIMPLEMENTED \
- return Py_INCREF(Py_NotImplemented), Py_NotImplemented
-
-/* Rich comparison opcodes */
-#define Py_LT 0
-#define Py_LE 1
-#define Py_EQ 2
-#define Py_NE 3
-#define Py_GT 4
-#define Py_GE 5
-
-/*
- * Macro for implementing rich comparisons
- *
- * Needs to be a macro because any C-comparable type can be used.
- */
-#define Py_RETURN_RICHCOMPARE(val1, val2, op) \
- do { \
- switch (op) { \
- case Py_EQ: if ((val1) == (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
- case Py_NE: if ((val1) != (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
- case Py_LT: if ((val1) < (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
- case Py_GT: if ((val1) > (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
- case Py_LE: if ((val1) <= (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
- case Py_GE: if ((val1) >= (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
- default: \
- Py_UNREACHABLE(); \
- } \
- } while (0)
-
-#ifndef Py_LIMITED_API
-/* Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.
- * Defined in object.c.
- */
-PyAPI_DATA(int) _Py_SwappedOp[];
-#endif /* !Py_LIMITED_API */
-
-
-/*
-More conventions
-================
-
-Argument Checking
------------------
-
-Functions that take objects as arguments normally don't check for nil
-arguments, but they do check the type of the argument, and return an
-error if the function doesn't apply to the type.
-
-Failure Modes
--------------
-
-Functions may fail for a variety of reasons, including running out of
-memory. This is communicated to the caller in two ways: an error string
-is set (see errors.h), and the function result differs: functions that
-normally return a pointer return NULL for failure, functions returning
-an integer return -1 (which could be a legal return value too!), and
-other functions return 0 for success and -1 for failure.
-Callers should always check for errors before using the result. If
-an error was set, the caller must either explicitly clear it, or pass
-the error on to its caller.
-
-Reference Counts
-----------------
-
-It takes a while to get used to the proper usage of reference counts.
-
-Functions that create an object set the reference count to 1; such new
-objects must be stored somewhere or destroyed again with Py_DECREF().
-Some functions that 'store' objects, such as PyTuple_SetItem() and
-PyList_SetItem(),
-don't increment the reference count of the object, since the most
-frequent use is to store a fresh object. Functions that 'retrieve'
-objects, such as PyTuple_GetItem() and PyDict_GetItemString(), also
-don't increment
-the reference count, since most frequently the object is only looked at
-quickly. Thus, to retrieve an object and store it again, the caller
-must call Py_INCREF() explicitly.
-
-NOTE: functions that 'consume' a reference count, like
-PyList_SetItem(), consume the reference even if the object wasn't
-successfully stored, to simplify error handling.
-
-It seems attractive to make other functions that take an object as
-argument consume a reference count; however, this may quickly get
-confusing (even the current practice is already confusing). Consider
-it carefully, it may save lots of calls to Py_INCREF() and Py_DECREF() at
-times.
-*/
-
-
-/* Trashcan mechanism, thanks to Christian Tismer.
-
-When deallocating a container object, it's possible to trigger an unbounded
-chain of deallocations, as each Py_DECREF in turn drops the refcount on "the
-next" object in the chain to 0. This can easily lead to stack faults, and
-especially in threads (which typically have less stack space to work with).
-
-A container object that participates in cyclic gc can avoid this by
-bracketing the body of its tp_dealloc function with a pair of macros:
-
-static void
-mytype_dealloc(mytype *p)
-{
- ... declarations go here ...
-
- PyObject_GC_UnTrack(p); // must untrack first
- Py_TRASHCAN_SAFE_BEGIN(p)
- ... The body of the deallocator goes here, including all calls ...
- ... to Py_DECREF on contained objects. ...
- Py_TRASHCAN_SAFE_END(p)
-}
-
-CAUTION: Never return from the middle of the body! If the body needs to
-"get out early", put a label immediately before the Py_TRASHCAN_SAFE_END
-call, and goto it. Else the call-depth counter (see below) will stay
-above 0 forever, and the trashcan will never get emptied.
-
-How it works: The BEGIN macro increments a call-depth counter. So long
-as this counter is small, the body of the deallocator is run directly without
-further ado. But if the counter gets large, it instead adds p to a list of
-objects to be deallocated later, skips the body of the deallocator, and
-resumes execution after the END macro. The tp_dealloc routine then returns
-without deallocating anything (and so unbounded call-stack depth is avoided).
-
-When the call stack finishes unwinding again, code generated by the END macro
-notices this, and calls another routine to deallocate all the objects that
-may have been added to the list of deferred deallocations. In effect, a
-chain of N deallocations is broken into (N-1)/(PyTrash_UNWIND_LEVEL-1) pieces,
-with the call stack never exceeding a depth of PyTrash_UNWIND_LEVEL.
-*/
-
-#ifndef Py_LIMITED_API
-/* This is the old private API, invoked by the macros before 3.2.4.
- Kept for binary compatibility of extensions using the stable ABI. */
-PyAPI_FUNC(void) _PyTrash_deposit_object(PyObject*);
-PyAPI_FUNC(void) _PyTrash_destroy_chain(void);
-#endif /* !Py_LIMITED_API */
-
-/* The new thread-safe private API, invoked by the macros below. */
-PyAPI_FUNC(void) _PyTrash_thread_deposit_object(PyObject*);
-PyAPI_FUNC(void) _PyTrash_thread_destroy_chain(void);
-
-#define PyTrash_UNWIND_LEVEL 50
-
-#define Py_TRASHCAN_SAFE_BEGIN(op) \
- do { \
- PyThreadState *_tstate = PyThreadState_GET(); \
- if (_tstate->trash_delete_nesting < PyTrash_UNWIND_LEVEL) { \
- ++_tstate->trash_delete_nesting;
- /* The body of the deallocator is here. */
-#define Py_TRASHCAN_SAFE_END(op) \
- --_tstate->trash_delete_nesting; \
- if (_tstate->trash_delete_later && _tstate->trash_delete_nesting <= 0) \
- _PyTrash_thread_destroy_chain(); \
- } \
- else \
- _PyTrash_thread_deposit_object((PyObject*)op); \
- } while (0);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void)
-_PyDebugAllocatorStats(FILE *out, const char *block_name, int num_blocks,
- size_t sizeof_block);
-PyAPI_FUNC(void)
-_PyObject_DebugTypeStats(FILE *out);
-#endif /* ifndef Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_OBJECT_H */
diff --git a/EasyTrans/Include/objimpl.h b/EasyTrans/Include/objimpl.h
deleted file mode 100644
index 0436ba78..00000000
--- a/EasyTrans/Include/objimpl.h
+++ /dev/null
@@ -1,374 +0,0 @@
-/* The PyObject_ memory family: high-level object memory interfaces.
- See pymem.h for the low-level PyMem_ family.
-*/
-
-#ifndef Py_OBJIMPL_H
-#define Py_OBJIMPL_H
-
-#include "pymem.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* BEWARE:
-
- Each interface exports both functions and macros. Extension modules should
- use the functions, to ensure binary compatibility across Python versions.
- Because the Python implementation is free to change internal details, and
- the macros may (or may not) expose details for speed, if you do use the
- macros you must recompile your extensions with each Python release.
-
- Never mix calls to PyObject_ memory functions with calls to the platform
- malloc/realloc/ calloc/free, or with calls to PyMem_.
-*/
-
-/*
-Functions and macros for modules that implement new object types.
-
- - PyObject_New(type, typeobj) allocates memory for a new object of the given
- type, and initializes part of it. 'type' must be the C structure type used
- to represent the object, and 'typeobj' the address of the corresponding
- type object. Reference count and type pointer are filled in; the rest of
- the bytes of the object are *undefined*! The resulting expression type is
- 'type *'. The size of the object is determined by the tp_basicsize field
- of the type object.
-
- - PyObject_NewVar(type, typeobj, n) is similar but allocates a variable-size
- object with room for n items. In addition to the refcount and type pointer
- fields, this also fills in the ob_size field.
-
- - PyObject_Del(op) releases the memory allocated for an object. It does not
- run a destructor -- it only frees the memory. PyObject_Free is identical.
-
- - PyObject_Init(op, typeobj) and PyObject_InitVar(op, typeobj, n) don't
- allocate memory. Instead of a 'type' parameter, they take a pointer to a
- new object (allocated by an arbitrary allocator), and initialize its object
- header fields.
-
-Note that objects created with PyObject_{New, NewVar} are allocated using the
-specialized Python allocator (implemented in obmalloc.c), if WITH_PYMALLOC is
-enabled. In addition, a special debugging allocator is used if PYMALLOC_DEBUG
-is also #defined.
-
-In case a specific form of memory management is needed (for example, if you
-must use the platform malloc heap(s), or shared memory, or C++ local storage or
-operator new), you must first allocate the object with your custom allocator,
-then pass its pointer to PyObject_{Init, InitVar} for filling in its Python-
-specific fields: reference count, type pointer, possibly others. You should
-be aware that Python has no control over these objects because they don't
-cooperate with the Python memory manager. Such objects may not be eligible
-for automatic garbage collection and you have to make sure that they are
-released accordingly whenever their destructor gets called (cf. the specific
-form of memory management you're using).
-
-Unless you have specific memory management requirements, use
-PyObject_{New, NewVar, Del}.
-*/
-
-/*
- * Raw object memory interface
- * ===========================
- */
-
-/* Functions to call the same malloc/realloc/free as used by Python's
- object allocator. If WITH_PYMALLOC is enabled, these may differ from
- the platform malloc/realloc/free. The Python object allocator is
- designed for fast, cache-conscious allocation of many "small" objects,
- and with low hidden memory overhead.
-
- PyObject_Malloc(0) returns a unique non-NULL pointer if possible.
-
- PyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).
- PyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory
- at p.
-
- Returned pointers must be checked for NULL explicitly; no action is
- performed on failure other than to return NULL (no warning it printed, no
- exception is set, etc).
-
- For allocating objects, use PyObject_{New, NewVar} instead whenever
- possible. The PyObject_{Malloc, Realloc, Free} family is exposed
- so that you can exploit Python's small-block allocator for non-object
- uses. If you must use these routines to allocate object memory, make sure
- the object gets initialized via PyObject_{Init, InitVar} after obtaining
- the raw memory.
-*/
-PyAPI_FUNC(void *) PyObject_Malloc(size_t size);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-PyAPI_FUNC(void *) PyObject_Calloc(size_t nelem, size_t elsize);
-#endif
-PyAPI_FUNC(void *) PyObject_Realloc(void *ptr, size_t new_size);
-PyAPI_FUNC(void) PyObject_Free(void *ptr);
-
-#ifndef Py_LIMITED_API
-/* This function returns the number of allocated memory blocks, regardless of size */
-PyAPI_FUNC(Py_ssize_t) _Py_GetAllocatedBlocks(void);
-#endif /* !Py_LIMITED_API */
-
-/* Macros */
-#ifdef WITH_PYMALLOC
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyObject_DebugMallocStats(FILE *out);
-#endif /* #ifndef Py_LIMITED_API */
-#endif
-
-/* Macros */
-#define PyObject_MALLOC PyObject_Malloc
-#define PyObject_REALLOC PyObject_Realloc
-#define PyObject_FREE PyObject_Free
-#define PyObject_Del PyObject_Free
-#define PyObject_DEL PyObject_Free
-
-
-/*
- * Generic object allocator interface
- * ==================================
- */
-
-/* Functions */
-PyAPI_FUNC(PyObject *) PyObject_Init(PyObject *, PyTypeObject *);
-PyAPI_FUNC(PyVarObject *) PyObject_InitVar(PyVarObject *,
- PyTypeObject *, Py_ssize_t);
-PyAPI_FUNC(PyObject *) _PyObject_New(PyTypeObject *);
-PyAPI_FUNC(PyVarObject *) _PyObject_NewVar(PyTypeObject *, Py_ssize_t);
-
-#define PyObject_New(type, typeobj) \
- ( (type *) _PyObject_New(typeobj) )
-#define PyObject_NewVar(type, typeobj, n) \
- ( (type *) _PyObject_NewVar((typeobj), (n)) )
-
-/* Macros trading binary compatibility for speed. See also pymem.h.
- Note that these macros expect non-NULL object pointers.*/
-#define PyObject_INIT(op, typeobj) \
- ( Py_TYPE(op) = (typeobj), _Py_NewReference((PyObject *)(op)), (op) )
-#define PyObject_INIT_VAR(op, typeobj, size) \
- ( Py_SIZE(op) = (size), PyObject_INIT((op), (typeobj)) )
-
-#define _PyObject_SIZE(typeobj) ( (typeobj)->tp_basicsize )
-
-/* _PyObject_VAR_SIZE returns the number of bytes (as size_t) allocated for a
- vrbl-size object with nitems items, exclusive of gc overhead (if any). The
- value is rounded up to the closest multiple of sizeof(void *), in order to
- ensure that pointer fields at the end of the object are correctly aligned
- for the platform (this is of special importance for subclasses of, e.g.,
- str or int, so that pointers can be stored after the embedded data).
-
- Note that there's no memory wastage in doing this, as malloc has to
- return (at worst) pointer-aligned memory anyway.
-*/
-#if ((SIZEOF_VOID_P - 1) & SIZEOF_VOID_P) != 0
-# error "_PyObject_VAR_SIZE requires SIZEOF_VOID_P be a power of 2"
-#endif
-
-#define _PyObject_VAR_SIZE(typeobj, nitems) \
- _Py_SIZE_ROUND_UP((typeobj)->tp_basicsize + \
- (nitems)*(typeobj)->tp_itemsize, \
- SIZEOF_VOID_P)
-
-#define PyObject_NEW(type, typeobj) \
-( (type *) PyObject_Init( \
- (PyObject *) PyObject_MALLOC( _PyObject_SIZE(typeobj) ), (typeobj)) )
-
-#define PyObject_NEW_VAR(type, typeobj, n) \
-( (type *) PyObject_InitVar( \
- (PyVarObject *) PyObject_MALLOC(_PyObject_VAR_SIZE((typeobj),(n)) ),\
- (typeobj), (n)) )
-
-/* This example code implements an object constructor with a custom
- allocator, where PyObject_New is inlined, and shows the important
- distinction between two steps (at least):
- 1) the actual allocation of the object storage;
- 2) the initialization of the Python specific fields
- in this storage with PyObject_{Init, InitVar}.
-
- PyObject *
- YourObject_New(...)
- {
- PyObject *op;
-
- op = (PyObject *) Your_Allocator(_PyObject_SIZE(YourTypeStruct));
- if (op == NULL)
- return PyErr_NoMemory();
-
- PyObject_Init(op, &YourTypeStruct);
-
- op->ob_field = value;
- ...
- return op;
- }
-
- Note that in C++, the use of the new operator usually implies that
- the 1st step is performed automatically for you, so in a C++ class
- constructor you would start directly with PyObject_Init/InitVar
-*/
-
-#ifndef Py_LIMITED_API
-typedef struct {
- /* user context passed as the first argument to the 2 functions */
- void *ctx;
-
- /* allocate an arena of size bytes */
- void* (*alloc) (void *ctx, size_t size);
-
- /* free an arena */
- void (*free) (void *ctx, void *ptr, size_t size);
-} PyObjectArenaAllocator;
-
-/* Get the arena allocator. */
-PyAPI_FUNC(void) PyObject_GetArenaAllocator(PyObjectArenaAllocator *allocator);
-
-/* Set the arena allocator. */
-PyAPI_FUNC(void) PyObject_SetArenaAllocator(PyObjectArenaAllocator *allocator);
-#endif
-
-
-/*
- * Garbage Collection Support
- * ==========================
- */
-
-/* C equivalent of gc.collect() which ignores the state of gc.enabled. */
-PyAPI_FUNC(Py_ssize_t) PyGC_Collect(void);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(Py_ssize_t) _PyGC_CollectNoFail(void);
-PyAPI_FUNC(Py_ssize_t) _PyGC_CollectIfEnabled(void);
-#endif
-
-/* Test if a type has a GC head */
-#define PyType_IS_GC(t) PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC)
-
-/* Test if an object has a GC head */
-#define PyObject_IS_GC(o) (PyType_IS_GC(Py_TYPE(o)) && \
- (Py_TYPE(o)->tp_is_gc == NULL || Py_TYPE(o)->tp_is_gc(o)))
-
-PyAPI_FUNC(PyVarObject *) _PyObject_GC_Resize(PyVarObject *, Py_ssize_t);
-#define PyObject_GC_Resize(type, op, n) \
- ( (type *) _PyObject_GC_Resize((PyVarObject *)(op), (n)) )
-
-/* GC information is stored BEFORE the object structure. */
-#ifndef Py_LIMITED_API
-typedef union _gc_head {
- struct {
- union _gc_head *gc_next;
- union _gc_head *gc_prev;
- Py_ssize_t gc_refs;
- } gc;
- long double dummy; /* force worst-case alignment */
- // malloc returns memory block aligned for any built-in types and
- // long double is the largest standard C type.
- // On amd64 linux, long double requires 16 byte alignment.
- // See bpo-27987 for more discussion.
-} PyGC_Head;
-
-extern PyGC_Head *_PyGC_generation0;
-
-#define _Py_AS_GC(o) ((PyGC_Head *)(o)-1)
-
-/* Bit 0 is set when tp_finalize is called */
-#define _PyGC_REFS_MASK_FINALIZED (1 << 0)
-/* The (N-1) most significant bits contain the gc state / refcount */
-#define _PyGC_REFS_SHIFT (1)
-#define _PyGC_REFS_MASK (((size_t) -1) << _PyGC_REFS_SHIFT)
-
-#define _PyGCHead_REFS(g) ((g)->gc.gc_refs >> _PyGC_REFS_SHIFT)
-#define _PyGCHead_SET_REFS(g, v) do { \
- (g)->gc.gc_refs = ((g)->gc.gc_refs & ~_PyGC_REFS_MASK) \
- | (((size_t)(v)) << _PyGC_REFS_SHIFT); \
- } while (0)
-#define _PyGCHead_DECREF(g) ((g)->gc.gc_refs -= 1 << _PyGC_REFS_SHIFT)
-
-#define _PyGCHead_FINALIZED(g) (((g)->gc.gc_refs & _PyGC_REFS_MASK_FINALIZED) != 0)
-#define _PyGCHead_SET_FINALIZED(g, v) do { \
- (g)->gc.gc_refs = ((g)->gc.gc_refs & ~_PyGC_REFS_MASK_FINALIZED) \
- | (v != 0); \
- } while (0)
-
-#define _PyGC_FINALIZED(o) _PyGCHead_FINALIZED(_Py_AS_GC(o))
-#define _PyGC_SET_FINALIZED(o, v) _PyGCHead_SET_FINALIZED(_Py_AS_GC(o), v)
-
-#define _PyGC_REFS(o) _PyGCHead_REFS(_Py_AS_GC(o))
-
-#define _PyGC_REFS_UNTRACKED (-2)
-#define _PyGC_REFS_REACHABLE (-3)
-#define _PyGC_REFS_TENTATIVELY_UNREACHABLE (-4)
-
-/* Tell the GC to track this object. NB: While the object is tracked the
- * collector it must be safe to call the ob_traverse method. */
-#define _PyObject_GC_TRACK(o) do { \
- PyGC_Head *g = _Py_AS_GC(o); \
- if (_PyGCHead_REFS(g) != _PyGC_REFS_UNTRACKED) \
- Py_FatalError("GC object already tracked"); \
- _PyGCHead_SET_REFS(g, _PyGC_REFS_REACHABLE); \
- g->gc.gc_next = _PyGC_generation0; \
- g->gc.gc_prev = _PyGC_generation0->gc.gc_prev; \
- g->gc.gc_prev->gc.gc_next = g; \
- _PyGC_generation0->gc.gc_prev = g; \
- } while (0);
-
-/* Tell the GC to stop tracking this object.
- * gc_next doesn't need to be set to NULL, but doing so is a good
- * way to provoke memory errors if calling code is confused.
- */
-#define _PyObject_GC_UNTRACK(o) do { \
- PyGC_Head *g = _Py_AS_GC(o); \
- assert(_PyGCHead_REFS(g) != _PyGC_REFS_UNTRACKED); \
- _PyGCHead_SET_REFS(g, _PyGC_REFS_UNTRACKED); \
- g->gc.gc_prev->gc.gc_next = g->gc.gc_next; \
- g->gc.gc_next->gc.gc_prev = g->gc.gc_prev; \
- g->gc.gc_next = NULL; \
- } while (0);
-
-/* True if the object is currently tracked by the GC. */
-#define _PyObject_GC_IS_TRACKED(o) \
- (_PyGC_REFS(o) != _PyGC_REFS_UNTRACKED)
-
-/* True if the object may be tracked by the GC in the future, or already is.
- This can be useful to implement some optimizations. */
-#define _PyObject_GC_MAY_BE_TRACKED(obj) \
- (PyObject_IS_GC(obj) && \
- (!PyTuple_CheckExact(obj) || _PyObject_GC_IS_TRACKED(obj)))
-#endif /* Py_LIMITED_API */
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyObject_GC_Malloc(size_t size);
-PyAPI_FUNC(PyObject *) _PyObject_GC_Calloc(size_t size);
-#endif /* !Py_LIMITED_API */
-PyAPI_FUNC(PyObject *) _PyObject_GC_New(PyTypeObject *);
-PyAPI_FUNC(PyVarObject *) _PyObject_GC_NewVar(PyTypeObject *, Py_ssize_t);
-PyAPI_FUNC(void) PyObject_GC_Track(void *);
-PyAPI_FUNC(void) PyObject_GC_UnTrack(void *);
-PyAPI_FUNC(void) PyObject_GC_Del(void *);
-
-#define PyObject_GC_New(type, typeobj) \
- ( (type *) _PyObject_GC_New(typeobj) )
-#define PyObject_GC_NewVar(type, typeobj, n) \
- ( (type *) _PyObject_GC_NewVar((typeobj), (n)) )
-
-
-/* Utility macro to help write tp_traverse functions.
- * To use this macro, the tp_traverse function must name its arguments
- * "visit" and "arg". This is intended to keep tp_traverse functions
- * looking as much alike as possible.
- */
-#define Py_VISIT(op) \
- do { \
- if (op) { \
- int vret = visit((PyObject *)(op), arg); \
- if (vret) \
- return vret; \
- } \
- } while (0)
-
-
-/* Test if a type supports weak references */
-#define PyType_SUPPORTS_WEAKREFS(t) ((t)->tp_weaklistoffset > 0)
-
-#define PyObject_GET_WEAKREFS_LISTPTR(o) \
- ((PyObject **) (((char *) (o)) + Py_TYPE(o)->tp_weaklistoffset))
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_OBJIMPL_H */
diff --git a/EasyTrans/Include/odictobject.h b/EasyTrans/Include/odictobject.h
deleted file mode 100644
index 8378dc4b..00000000
--- a/EasyTrans/Include/odictobject.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef Py_ODICTOBJECT_H
-#define Py_ODICTOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* OrderedDict */
-/* This API is optional and mostly redundant. */
-
-#ifndef Py_LIMITED_API
-
-typedef struct _odictobject PyODictObject;
-
-PyAPI_DATA(PyTypeObject) PyODict_Type;
-PyAPI_DATA(PyTypeObject) PyODictIter_Type;
-PyAPI_DATA(PyTypeObject) PyODictKeys_Type;
-PyAPI_DATA(PyTypeObject) PyODictItems_Type;
-PyAPI_DATA(PyTypeObject) PyODictValues_Type;
-
-#define PyODict_Check(op) PyObject_TypeCheck(op, &PyODict_Type)
-#define PyODict_CheckExact(op) (Py_TYPE(op) == &PyODict_Type)
-#define PyODict_SIZE(op) PyDict_GET_SIZE((op))
-
-PyAPI_FUNC(PyObject *) PyODict_New(void);
-PyAPI_FUNC(int) PyODict_SetItem(PyObject *od, PyObject *key, PyObject *item);
-PyAPI_FUNC(int) PyODict_DelItem(PyObject *od, PyObject *key);
-
-/* wrappers around PyDict* functions */
-#define PyODict_GetItem(od, key) PyDict_GetItem((PyObject *)od, key)
-#define PyODict_GetItemWithError(od, key) \
- PyDict_GetItemWithError((PyObject *)od, key)
-#define PyODict_Contains(od, key) PyDict_Contains((PyObject *)od, key)
-#define PyODict_Size(od) PyDict_Size((PyObject *)od)
-#define PyODict_GetItemString(od, key) \
- PyDict_GetItemString((PyObject *)od, key)
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_ODICTOBJECT_H */
diff --git a/EasyTrans/Include/opcode.h b/EasyTrans/Include/opcode.h
deleted file mode 100644
index fc6cbf3a..00000000
--- a/EasyTrans/Include/opcode.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Auto-generated by Tools/scripts/generate_opcode_h.py */
-#ifndef Py_OPCODE_H
-#define Py_OPCODE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
- /* Instruction opcodes for compiled code */
-#define POP_TOP 1
-#define ROT_TWO 2
-#define ROT_THREE 3
-#define DUP_TOP 4
-#define DUP_TOP_TWO 5
-#define NOP 9
-#define UNARY_POSITIVE 10
-#define UNARY_NEGATIVE 11
-#define UNARY_NOT 12
-#define UNARY_INVERT 15
-#define BINARY_MATRIX_MULTIPLY 16
-#define INPLACE_MATRIX_MULTIPLY 17
-#define BINARY_POWER 19
-#define BINARY_MULTIPLY 20
-#define BINARY_MODULO 22
-#define BINARY_ADD 23
-#define BINARY_SUBTRACT 24
-#define BINARY_SUBSCR 25
-#define BINARY_FLOOR_DIVIDE 26
-#define BINARY_TRUE_DIVIDE 27
-#define INPLACE_FLOOR_DIVIDE 28
-#define INPLACE_TRUE_DIVIDE 29
-#define GET_AITER 50
-#define GET_ANEXT 51
-#define BEFORE_ASYNC_WITH 52
-#define INPLACE_ADD 55
-#define INPLACE_SUBTRACT 56
-#define INPLACE_MULTIPLY 57
-#define INPLACE_MODULO 59
-#define STORE_SUBSCR 60
-#define DELETE_SUBSCR 61
-#define BINARY_LSHIFT 62
-#define BINARY_RSHIFT 63
-#define BINARY_AND 64
-#define BINARY_XOR 65
-#define BINARY_OR 66
-#define INPLACE_POWER 67
-#define GET_ITER 68
-#define GET_YIELD_FROM_ITER 69
-#define PRINT_EXPR 70
-#define LOAD_BUILD_CLASS 71
-#define YIELD_FROM 72
-#define GET_AWAITABLE 73
-#define INPLACE_LSHIFT 75
-#define INPLACE_RSHIFT 76
-#define INPLACE_AND 77
-#define INPLACE_XOR 78
-#define INPLACE_OR 79
-#define BREAK_LOOP 80
-#define WITH_CLEANUP_START 81
-#define WITH_CLEANUP_FINISH 82
-#define RETURN_VALUE 83
-#define IMPORT_STAR 84
-#define SETUP_ANNOTATIONS 85
-#define YIELD_VALUE 86
-#define POP_BLOCK 87
-#define END_FINALLY 88
-#define POP_EXCEPT 89
-#define HAVE_ARGUMENT 90
-#define STORE_NAME 90
-#define DELETE_NAME 91
-#define UNPACK_SEQUENCE 92
-#define FOR_ITER 93
-#define UNPACK_EX 94
-#define STORE_ATTR 95
-#define DELETE_ATTR 96
-#define STORE_GLOBAL 97
-#define DELETE_GLOBAL 98
-#define LOAD_CONST 100
-#define LOAD_NAME 101
-#define BUILD_TUPLE 102
-#define BUILD_LIST 103
-#define BUILD_SET 104
-#define BUILD_MAP 105
-#define LOAD_ATTR 106
-#define COMPARE_OP 107
-#define IMPORT_NAME 108
-#define IMPORT_FROM 109
-#define JUMP_FORWARD 110
-#define JUMP_IF_FALSE_OR_POP 111
-#define JUMP_IF_TRUE_OR_POP 112
-#define JUMP_ABSOLUTE 113
-#define POP_JUMP_IF_FALSE 114
-#define POP_JUMP_IF_TRUE 115
-#define LOAD_GLOBAL 116
-#define CONTINUE_LOOP 119
-#define SETUP_LOOP 120
-#define SETUP_EXCEPT 121
-#define SETUP_FINALLY 122
-#define LOAD_FAST 124
-#define STORE_FAST 125
-#define DELETE_FAST 126
-#define RAISE_VARARGS 130
-#define CALL_FUNCTION 131
-#define MAKE_FUNCTION 132
-#define BUILD_SLICE 133
-#define LOAD_CLOSURE 135
-#define LOAD_DEREF 136
-#define STORE_DEREF 137
-#define DELETE_DEREF 138
-#define CALL_FUNCTION_KW 141
-#define CALL_FUNCTION_EX 142
-#define SETUP_WITH 143
-#define EXTENDED_ARG 144
-#define LIST_APPEND 145
-#define SET_ADD 146
-#define MAP_ADD 147
-#define LOAD_CLASSDEREF 148
-#define BUILD_LIST_UNPACK 149
-#define BUILD_MAP_UNPACK 150
-#define BUILD_MAP_UNPACK_WITH_CALL 151
-#define BUILD_TUPLE_UNPACK 152
-#define BUILD_SET_UNPACK 153
-#define SETUP_ASYNC_WITH 154
-#define FORMAT_VALUE 155
-#define BUILD_CONST_KEY_MAP 156
-#define BUILD_STRING 157
-#define BUILD_TUPLE_UNPACK_WITH_CALL 158
-#define LOAD_METHOD 160
-#define CALL_METHOD 161
-
-/* EXCEPT_HANDLER is a special, implicit block type which is created when
- entering an except handler. It is not an opcode but we define it here
- as we want it to be available to both frameobject.c and ceval.c, while
- remaining private.*/
-#define EXCEPT_HANDLER 257
-
-
-enum cmp_op {PyCmp_LT=Py_LT, PyCmp_LE=Py_LE, PyCmp_EQ=Py_EQ, PyCmp_NE=Py_NE,
- PyCmp_GT=Py_GT, PyCmp_GE=Py_GE, PyCmp_IN, PyCmp_NOT_IN,
- PyCmp_IS, PyCmp_IS_NOT, PyCmp_EXC_MATCH, PyCmp_BAD};
-
-#define HAS_ARG(op) ((op) >= HAVE_ARGUMENT)
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_OPCODE_H */
diff --git a/EasyTrans/Include/osdefs.h b/EasyTrans/Include/osdefs.h
deleted file mode 100644
index bd84c1c1..00000000
--- a/EasyTrans/Include/osdefs.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef Py_OSDEFS_H
-#define Py_OSDEFS_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Operating system dependencies */
-
-#ifdef MS_WINDOWS
-#define SEP L'\\'
-#define ALTSEP L'/'
-#define MAXPATHLEN 256
-#define DELIM L';'
-#endif
-
-/* Filename separator */
-#ifndef SEP
-#define SEP L'/'
-#endif
-
-/* Max pathname length */
-#ifdef __hpux
-#include
-#include
-#ifndef PATH_MAX
-#define PATH_MAX MAXPATHLEN
-#endif
-#endif
-
-#ifndef MAXPATHLEN
-#if defined(PATH_MAX) && PATH_MAX > 1024
-#define MAXPATHLEN PATH_MAX
-#else
-#define MAXPATHLEN 1024
-#endif
-#endif
-
-/* Search path entry delimiter */
-#ifndef DELIM
-#define DELIM L':'
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_OSDEFS_H */
diff --git a/EasyTrans/Include/osmodule.h b/EasyTrans/Include/osmodule.h
deleted file mode 100644
index 9095c2fd..00000000
--- a/EasyTrans/Include/osmodule.h
+++ /dev/null
@@ -1,17 +0,0 @@
-
-/* os module interface */
-
-#ifndef Py_OSMODULE_H
-#define Py_OSMODULE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000
-PyAPI_FUNC(PyObject *) PyOS_FSPath(PyObject *path);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_OSMODULE_H */
diff --git a/EasyTrans/Include/parsetok.h b/EasyTrans/Include/parsetok.h
deleted file mode 100644
index c9407a3f..00000000
--- a/EasyTrans/Include/parsetok.h
+++ /dev/null
@@ -1,108 +0,0 @@
-
-/* Parser-tokenizer link interface */
-#ifndef Py_LIMITED_API
-#ifndef Py_PARSETOK_H
-#define Py_PARSETOK_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct {
- int error;
-#ifndef PGEN
- /* The filename is useless for pgen, see comment in tok_state structure */
- PyObject *filename;
-#endif
- int lineno;
- int offset;
- char *text; /* UTF-8-encoded string */
- int token;
- int expected;
-} perrdetail;
-
-#if 0
-#define PyPARSE_YIELD_IS_KEYWORD 0x0001
-#endif
-
-#define PyPARSE_DONT_IMPLY_DEDENT 0x0002
-
-#if 0
-#define PyPARSE_WITH_IS_KEYWORD 0x0003
-#define PyPARSE_PRINT_IS_FUNCTION 0x0004
-#define PyPARSE_UNICODE_LITERALS 0x0008
-#endif
-
-#define PyPARSE_IGNORE_COOKIE 0x0010
-#define PyPARSE_BARRY_AS_BDFL 0x0020
-
-PyAPI_FUNC(node *) PyParser_ParseString(const char *, grammar *, int,
- perrdetail *);
-PyAPI_FUNC(node *) PyParser_ParseFile (FILE *, const char *, grammar *, int,
- const char *, const char *,
- perrdetail *);
-
-PyAPI_FUNC(node *) PyParser_ParseStringFlags(const char *, grammar *, int,
- perrdetail *, int);
-PyAPI_FUNC(node *) PyParser_ParseFileFlags(
- FILE *fp,
- const char *filename, /* decoded from the filesystem encoding */
- const char *enc,
- grammar *g,
- int start,
- const char *ps1,
- const char *ps2,
- perrdetail *err_ret,
- int flags);
-PyAPI_FUNC(node *) PyParser_ParseFileFlagsEx(
- FILE *fp,
- const char *filename, /* decoded from the filesystem encoding */
- const char *enc,
- grammar *g,
- int start,
- const char *ps1,
- const char *ps2,
- perrdetail *err_ret,
- int *flags);
-PyAPI_FUNC(node *) PyParser_ParseFileObject(
- FILE *fp,
- PyObject *filename,
- const char *enc,
- grammar *g,
- int start,
- const char *ps1,
- const char *ps2,
- perrdetail *err_ret,
- int *flags);
-
-PyAPI_FUNC(node *) PyParser_ParseStringFlagsFilename(
- const char *s,
- const char *filename, /* decoded from the filesystem encoding */
- grammar *g,
- int start,
- perrdetail *err_ret,
- int flags);
-PyAPI_FUNC(node *) PyParser_ParseStringFlagsFilenameEx(
- const char *s,
- const char *filename, /* decoded from the filesystem encoding */
- grammar *g,
- int start,
- perrdetail *err_ret,
- int *flags);
-PyAPI_FUNC(node *) PyParser_ParseStringObject(
- const char *s,
- PyObject *filename,
- grammar *g,
- int start,
- perrdetail *err_ret,
- int *flags);
-
-/* Note that the following functions are defined in pythonrun.c,
- not in parsetok.c */
-PyAPI_FUNC(void) PyParser_SetError(perrdetail *);
-PyAPI_FUNC(void) PyParser_ClearError(perrdetail *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PARSETOK_H */
-#endif /* !Py_LIMITED_API */
diff --git a/EasyTrans/Include/patchlevel.h b/EasyTrans/Include/patchlevel.h
deleted file mode 100644
index 27753644..00000000
--- a/EasyTrans/Include/patchlevel.h
+++ /dev/null
@@ -1,35 +0,0 @@
-
-/* Python version identification scheme.
-
- When the major or minor version changes, the VERSION variable in
- configure.ac must also be changed.
-
- There is also (independent) API version information in modsupport.h.
-*/
-
-/* Values for PY_RELEASE_LEVEL */
-#define PY_RELEASE_LEVEL_ALPHA 0xA
-#define PY_RELEASE_LEVEL_BETA 0xB
-#define PY_RELEASE_LEVEL_GAMMA 0xC /* For release candidates */
-#define PY_RELEASE_LEVEL_FINAL 0xF /* Serial should be 0 here */
- /* Higher for patch releases */
-
-/* Version parsed out into numeric values */
-/*--start constants--*/
-#define PY_MAJOR_VERSION 3
-#define PY_MINOR_VERSION 7
-#define PY_MICRO_VERSION 4
-#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA
-#define PY_RELEASE_SERIAL 1
-
-/* Version as a string */
-#define PY_VERSION "3.7.4rc1"
-/*--end constants--*/
-
-/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
- Use this for numeric comparisons, e.g. #if PY_VERSION_HEX >= ... */
-#define PY_VERSION_HEX ((PY_MAJOR_VERSION << 24) | \
- (PY_MINOR_VERSION << 16) | \
- (PY_MICRO_VERSION << 8) | \
- (PY_RELEASE_LEVEL << 4) | \
- (PY_RELEASE_SERIAL << 0))
diff --git a/EasyTrans/Include/pgen.h b/EasyTrans/Include/pgen.h
deleted file mode 100644
index 8a325ed0..00000000
--- a/EasyTrans/Include/pgen.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef Py_PGEN_H
-#define Py_PGEN_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Parser generator interface */
-
-extern grammar *meta_grammar(void);
-
-struct _node;
-extern grammar *pgen(struct _node *);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PGEN_H */
diff --git a/EasyTrans/Include/pgenheaders.h b/EasyTrans/Include/pgenheaders.h
deleted file mode 100644
index dbc5e0a5..00000000
--- a/EasyTrans/Include/pgenheaders.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef Py_PGENHEADERS_H
-#define Py_PGENHEADERS_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Include files and extern declarations used by most of the parser. */
-
-#include "Python.h"
-
-PyAPI_FUNC(void) PySys_WriteStdout(const char *format, ...)
- Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
-PyAPI_FUNC(void) PySys_WriteStderr(const char *format, ...)
- Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
-
-#define addarc _Py_addarc
-#define addbit _Py_addbit
-#define adddfa _Py_adddfa
-#define addfirstsets _Py_addfirstsets
-#define addlabel _Py_addlabel
-#define addstate _Py_addstate
-#define delbitset _Py_delbitset
-#define dumptree _Py_dumptree
-#define findlabel _Py_findlabel
-#define freegrammar _Py_freegrammar
-#define mergebitset _Py_mergebitset
-#define meta_grammar _Py_meta_grammar
-#define newbitset _Py_newbitset
-#define newgrammar _Py_newgrammar
-#define pgen _Py_pgen
-#define printgrammar _Py_printgrammar
-#define printnonterminals _Py_printnonterminals
-#define printtree _Py_printtree
-#define samebitset _Py_samebitset
-#define showtree _Py_showtree
-#define tok_dump _Py_tok_dump
-#define translatelabels _Py_translatelabels
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PGENHEADERS_H */
diff --git a/EasyTrans/Include/py_curses.h b/EasyTrans/Include/py_curses.h
deleted file mode 100644
index 0eebc362..00000000
--- a/EasyTrans/Include/py_curses.h
+++ /dev/null
@@ -1,159 +0,0 @@
-
-#ifndef Py_CURSES_H
-#define Py_CURSES_H
-
-#ifdef __APPLE__
-/*
-** On Mac OS X 10.2 [n]curses.h and stdlib.h use different guards
-** against multiple definition of wchar_t.
-*/
-#ifdef _BSD_WCHAR_T_DEFINED_
-#define _WCHAR_T
-#endif
-#endif /* __APPLE__ */
-
-/* On FreeBSD, [n]curses.h and stdlib.h/wchar.h use different guards
- against multiple definition of wchar_t and wint_t. */
-#if defined(__FreeBSD__) && defined(_XOPEN_SOURCE_EXTENDED)
-# ifndef __wchar_t
-# define __wchar_t
-# endif
-# ifndef __wint_t
-# define __wint_t
-# endif
-#endif
-
-#if !defined(HAVE_CURSES_IS_PAD) && defined(WINDOW_HAS_FLAGS)
-/* The following definition is necessary for ncurses 5.7; without it,
- some of [n]curses.h set NCURSES_OPAQUE to 1, and then Python
- can't get at the WINDOW flags field. */
-#define NCURSES_OPAQUE 0
-#endif
-
-#ifdef HAVE_NCURSES_H
-#include
-#else
-#include
-#endif
-
-#ifdef HAVE_NCURSES_H
-/* configure was checking , but we will
- use , which has some or all these features. */
-#if !defined(WINDOW_HAS_FLAGS) && !(NCURSES_OPAQUE+0)
-#define WINDOW_HAS_FLAGS 1
-#endif
-#if !defined(HAVE_CURSES_IS_PAD) && NCURSES_VERSION_PATCH+0 >= 20090906
-#define HAVE_CURSES_IS_PAD 1
-#endif
-#ifndef MVWDELCH_IS_EXPRESSION
-#define MVWDELCH_IS_EXPRESSION 1
-#endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define PyCurses_API_pointers 4
-
-/* Type declarations */
-
-typedef struct {
- PyObject_HEAD
- WINDOW *win;
- char *encoding;
-} PyCursesWindowObject;
-
-#define PyCursesWindow_Check(v) (Py_TYPE(v) == &PyCursesWindow_Type)
-
-#define PyCurses_CAPSULE_NAME "_curses._C_API"
-
-
-#ifdef CURSES_MODULE
-/* This section is used when compiling _cursesmodule.c */
-
-#else
-/* This section is used in modules that use the _cursesmodule API */
-
-static void **PyCurses_API;
-
-#define PyCursesWindow_Type (*(PyTypeObject *) PyCurses_API[0])
-#define PyCursesSetupTermCalled {if (! ((int (*)(void))PyCurses_API[1]) () ) return NULL;}
-#define PyCursesInitialised {if (! ((int (*)(void))PyCurses_API[2]) () ) return NULL;}
-#define PyCursesInitialisedColor {if (! ((int (*)(void))PyCurses_API[3]) () ) return NULL;}
-
-#define import_curses() \
- PyCurses_API = (void **)PyCapsule_Import(PyCurses_CAPSULE_NAME, 1);
-
-#endif
-
-/* general error messages */
-static const char catchall_ERR[] = "curses function returned ERR";
-static const char catchall_NULL[] = "curses function returned NULL";
-
-/* Function Prototype Macros - They are ugly but very, very useful. ;-)
-
- X - function name
- TYPE - parameter Type
- ERGSTR - format string for construction of the return value
- PARSESTR - format string for argument parsing
- */
-
-#define NoArgNoReturnFunction(X) \
-static PyObject *PyCurses_ ## X (PyObject *self) \
-{ \
- PyCursesInitialised \
- return PyCursesCheckERR(X(), # X); }
-
-#define NoArgOrFlagNoReturnFunction(X) \
-static PyObject *PyCurses_ ## X (PyObject *self, PyObject *args) \
-{ \
- int flag = 0; \
- PyCursesInitialised \
- switch(PyTuple_Size(args)) { \
- case 0: \
- return PyCursesCheckERR(X(), # X); \
- case 1: \
- if (!PyArg_ParseTuple(args, "i;True(1) or False(0)", &flag)) return NULL; \
- if (flag) return PyCursesCheckERR(X(), # X); \
- else return PyCursesCheckERR(no ## X (), # X); \
- default: \
- PyErr_SetString(PyExc_TypeError, # X " requires 0 or 1 arguments"); \
- return NULL; } }
-
-#define NoArgReturnIntFunction(X) \
-static PyObject *PyCurses_ ## X (PyObject *self) \
-{ \
- PyCursesInitialised \
- return PyLong_FromLong((long) X()); }
-
-
-#define NoArgReturnStringFunction(X) \
-static PyObject *PyCurses_ ## X (PyObject *self) \
-{ \
- PyCursesInitialised \
- return PyBytes_FromString(X()); }
-
-#define NoArgTrueFalseFunction(X) \
-static PyObject *PyCurses_ ## X (PyObject *self) \
-{ \
- PyCursesInitialised \
- if (X () == FALSE) { \
- Py_RETURN_FALSE; \
- } \
- Py_RETURN_TRUE; }
-
-#define NoArgNoReturnVoidFunction(X) \
-static PyObject *PyCurses_ ## X (PyObject *self) \
-{ \
- PyCursesInitialised \
- X(); \
- Py_RETURN_NONE; }
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(Py_CURSES_H) */
-
-
diff --git a/EasyTrans/Include/pyarena.h b/EasyTrans/Include/pyarena.h
deleted file mode 100644
index db3ad018..00000000
--- a/EasyTrans/Include/pyarena.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* An arena-like memory interface for the compiler.
- */
-
-#ifndef Py_LIMITED_API
-#ifndef Py_PYARENA_H
-#define Py_PYARENA_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- typedef struct _arena PyArena;
-
- /* PyArena_New() and PyArena_Free() create a new arena and free it,
- respectively. Once an arena has been created, it can be used
- to allocate memory via PyArena_Malloc(). Pointers to PyObject can
- also be registered with the arena via PyArena_AddPyObject(), and the
- arena will ensure that the PyObjects stay alive at least until
- PyArena_Free() is called. When an arena is freed, all the memory it
- allocated is freed, the arena releases internal references to registered
- PyObject*, and none of its pointers are valid.
- XXX (tim) What does "none of its pointers are valid" mean? Does it
- XXX mean that pointers previously obtained via PyArena_Malloc() are
- XXX no longer valid? (That's clearly true, but not sure that's what
- XXX the text is trying to say.)
-
- PyArena_New() returns an arena pointer. On error, it
- returns a negative number and sets an exception.
- XXX (tim): Not true. On error, PyArena_New() actually returns NULL,
- XXX and looks like it may or may not set an exception (e.g., if the
- XXX internal PyList_New(0) returns NULL, PyArena_New() passes that on
- XXX and an exception is set; OTOH, if the internal
- XXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but
- XXX an exception is not set in that case).
- */
- PyAPI_FUNC(PyArena *) PyArena_New(void);
- PyAPI_FUNC(void) PyArena_Free(PyArena *);
-
- /* Mostly like malloc(), return the address of a block of memory spanning
- * `size` bytes, or return NULL (without setting an exception) if enough
- * new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with
- * size=0 does not guarantee to return a unique pointer (the pointer
- * returned may equal one or more other pointers obtained from
- * PyArena_Malloc()).
- * Note that pointers obtained via PyArena_Malloc() must never be passed to
- * the system free() or realloc(), or to any of Python's similar memory-
- * management functions. PyArena_Malloc()-obtained pointers remain valid
- * until PyArena_Free(ar) is called, at which point all pointers obtained
- * from the arena `ar` become invalid simultaneously.
- */
- PyAPI_FUNC(void *) PyArena_Malloc(PyArena *, size_t size);
-
- /* This routine isn't a proper arena allocation routine. It takes
- * a PyObject* and records it so that it can be DECREFed when the
- * arena is freed.
- */
- PyAPI_FUNC(int) PyArena_AddPyObject(PyArena *, PyObject *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !Py_PYARENA_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/pyatomic.h b/EasyTrans/Include/pyatomic.h
deleted file mode 100644
index 9a497a68..00000000
--- a/EasyTrans/Include/pyatomic.h
+++ /dev/null
@@ -1,535 +0,0 @@
-#ifndef Py_ATOMIC_H
-#define Py_ATOMIC_H
-#ifdef Py_BUILD_CORE
-
-#include "dynamic_annotations.h"
-
-#include "pyconfig.h"
-
-#if defined(HAVE_STD_ATOMIC)
-#include
-#endif
-
-
-#if defined(_MSC_VER)
-#include
-#include
-#endif
-
-/* This is modeled after the atomics interface from C1x, according to
- * the draft at
- * http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1425.pdf.
- * Operations and types are named the same except with a _Py_ prefix
- * and have the same semantics.
- *
- * Beware, the implementations here are deep magic.
- */
-
-#if defined(HAVE_STD_ATOMIC)
-
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed = memory_order_relaxed,
- _Py_memory_order_acquire = memory_order_acquire,
- _Py_memory_order_release = memory_order_release,
- _Py_memory_order_acq_rel = memory_order_acq_rel,
- _Py_memory_order_seq_cst = memory_order_seq_cst
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- atomic_uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- atomic_int _value;
-} _Py_atomic_int;
-
-#define _Py_atomic_signal_fence(/*memory_order*/ ORDER) \
- atomic_signal_fence(ORDER)
-
-#define _Py_atomic_thread_fence(/*memory_order*/ ORDER) \
- atomic_thread_fence(ORDER)
-
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- atomic_store_explicit(&(ATOMIC_VAL)->_value, NEW_VAL, ORDER)
-
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- atomic_load_explicit(&(ATOMIC_VAL)->_value, ORDER)
-
-/* Use builtin atomic operations in GCC >= 4.7 */
-#elif defined(HAVE_BUILTIN_ATOMIC)
-
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed = __ATOMIC_RELAXED,
- _Py_memory_order_acquire = __ATOMIC_ACQUIRE,
- _Py_memory_order_release = __ATOMIC_RELEASE,
- _Py_memory_order_acq_rel = __ATOMIC_ACQ_REL,
- _Py_memory_order_seq_cst = __ATOMIC_SEQ_CST
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- int _value;
-} _Py_atomic_int;
-
-#define _Py_atomic_signal_fence(/*memory_order*/ ORDER) \
- __atomic_signal_fence(ORDER)
-
-#define _Py_atomic_thread_fence(/*memory_order*/ ORDER) \
- __atomic_thread_fence(ORDER)
-
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- (assert((ORDER) == __ATOMIC_RELAXED \
- || (ORDER) == __ATOMIC_SEQ_CST \
- || (ORDER) == __ATOMIC_RELEASE), \
- __atomic_store_n(&(ATOMIC_VAL)->_value, NEW_VAL, ORDER))
-
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- (assert((ORDER) == __ATOMIC_RELAXED \
- || (ORDER) == __ATOMIC_SEQ_CST \
- || (ORDER) == __ATOMIC_ACQUIRE \
- || (ORDER) == __ATOMIC_CONSUME), \
- __atomic_load_n(&(ATOMIC_VAL)->_value, ORDER))
-
-/* Only support GCC (for expression statements) and x86 (for simple
- * atomic semantics) and MSVC x86/x64/ARM */
-#elif defined(__GNUC__) && (defined(__i386__) || defined(__amd64))
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed,
- _Py_memory_order_acquire,
- _Py_memory_order_release,
- _Py_memory_order_acq_rel,
- _Py_memory_order_seq_cst
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- int _value;
-} _Py_atomic_int;
-
-
-static __inline__ void
-_Py_atomic_signal_fence(_Py_memory_order order)
-{
- if (order != _Py_memory_order_relaxed)
- __asm__ volatile("":::"memory");
-}
-
-static __inline__ void
-_Py_atomic_thread_fence(_Py_memory_order order)
-{
- if (order != _Py_memory_order_relaxed)
- __asm__ volatile("mfence":::"memory");
-}
-
-/* Tell the race checker about this operation's effects. */
-static __inline__ void
-_Py_ANNOTATE_MEMORY_ORDER(const volatile void *address, _Py_memory_order order)
-{
- (void)address; /* shut up -Wunused-parameter */
- switch(order) {
- case _Py_memory_order_release:
- case _Py_memory_order_acq_rel:
- case _Py_memory_order_seq_cst:
- _Py_ANNOTATE_HAPPENS_BEFORE(address);
- break;
- case _Py_memory_order_relaxed:
- case _Py_memory_order_acquire:
- break;
- }
- switch(order) {
- case _Py_memory_order_acquire:
- case _Py_memory_order_acq_rel:
- case _Py_memory_order_seq_cst:
- _Py_ANNOTATE_HAPPENS_AFTER(address);
- break;
- case _Py_memory_order_relaxed:
- case _Py_memory_order_release:
- break;
- }
-}
-
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- __extension__ ({ \
- __typeof__(ATOMIC_VAL) atomic_val = ATOMIC_VAL; \
- __typeof__(atomic_val->_value) new_val = NEW_VAL;\
- volatile __typeof__(new_val) *volatile_data = &atomic_val->_value; \
- _Py_memory_order order = ORDER; \
- _Py_ANNOTATE_MEMORY_ORDER(atomic_val, order); \
- \
- /* Perform the operation. */ \
- _Py_ANNOTATE_IGNORE_WRITES_BEGIN(); \
- switch(order) { \
- case _Py_memory_order_release: \
- _Py_atomic_signal_fence(_Py_memory_order_release); \
- /* fallthrough */ \
- case _Py_memory_order_relaxed: \
- *volatile_data = new_val; \
- break; \
- \
- case _Py_memory_order_acquire: \
- case _Py_memory_order_acq_rel: \
- case _Py_memory_order_seq_cst: \
- __asm__ volatile("xchg %0, %1" \
- : "+r"(new_val) \
- : "m"(atomic_val->_value) \
- : "memory"); \
- break; \
- } \
- _Py_ANNOTATE_IGNORE_WRITES_END(); \
- })
-
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- __extension__ ({ \
- __typeof__(ATOMIC_VAL) atomic_val = ATOMIC_VAL; \
- __typeof__(atomic_val->_value) result; \
- volatile __typeof__(result) *volatile_data = &atomic_val->_value; \
- _Py_memory_order order = ORDER; \
- _Py_ANNOTATE_MEMORY_ORDER(atomic_val, order); \
- \
- /* Perform the operation. */ \
- _Py_ANNOTATE_IGNORE_READS_BEGIN(); \
- switch(order) { \
- case _Py_memory_order_release: \
- case _Py_memory_order_acq_rel: \
- case _Py_memory_order_seq_cst: \
- /* Loads on x86 are not releases by default, so need a */ \
- /* thread fence. */ \
- _Py_atomic_thread_fence(_Py_memory_order_release); \
- break; \
- default: \
- /* No fence */ \
- break; \
- } \
- result = *volatile_data; \
- switch(order) { \
- case _Py_memory_order_acquire: \
- case _Py_memory_order_acq_rel: \
- case _Py_memory_order_seq_cst: \
- /* Loads on x86 are automatically acquire operations so */ \
- /* can get by with just a compiler fence. */ \
- _Py_atomic_signal_fence(_Py_memory_order_acquire); \
- break; \
- default: \
- /* No fence */ \
- break; \
- } \
- _Py_ANNOTATE_IGNORE_READS_END(); \
- result; \
- })
-
-#elif defined(_MSC_VER)
-/* _Interlocked* functions provide a full memory barrier and are therefore
- enough for acq_rel and seq_cst. If the HLE variants aren't available
- in hardware they will fall back to a full memory barrier as well.
-
- This might affect performance but likely only in some very specific and
- hard to meassure scenario.
-*/
-#if defined(_M_IX86) || defined(_M_X64)
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed,
- _Py_memory_order_acquire,
- _Py_memory_order_release,
- _Py_memory_order_acq_rel,
- _Py_memory_order_seq_cst
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- volatile uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- volatile int _value;
-} _Py_atomic_int;
-
-
-#if defined(_M_X64)
-#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) \
- switch (ORDER) { \
- case _Py_memory_order_acquire: \
- _InterlockedExchange64_HLEAcquire((__int64 volatile*)ATOMIC_VAL, (__int64)NEW_VAL); \
- break; \
- case _Py_memory_order_release: \
- _InterlockedExchange64_HLERelease((__int64 volatile*)ATOMIC_VAL, (__int64)NEW_VAL); \
- break; \
- default: \
- _InterlockedExchange64((__int64 volatile*)ATOMIC_VAL, (__int64)NEW_VAL); \
- break; \
- }
-#else
-#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) ((void)0);
-#endif
-
-#define _Py_atomic_store_32bit(ATOMIC_VAL, NEW_VAL, ORDER) \
- switch (ORDER) { \
- case _Py_memory_order_acquire: \
- _InterlockedExchange_HLEAcquire((volatile long*)ATOMIC_VAL, (int)NEW_VAL); \
- break; \
- case _Py_memory_order_release: \
- _InterlockedExchange_HLERelease((volatile long*)ATOMIC_VAL, (int)NEW_VAL); \
- break; \
- default: \
- _InterlockedExchange((volatile long*)ATOMIC_VAL, (int)NEW_VAL); \
- break; \
- }
-
-#if defined(_M_X64)
-/* This has to be an intptr_t for now.
- gil_created() uses -1 as a sentinel value, if this returns
- a uintptr_t it will do an unsigned compare and crash
-*/
-inline intptr_t _Py_atomic_load_64bit(volatile uintptr_t* value, int order) {
- __int64 old;
- switch (order) {
- case _Py_memory_order_acquire:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64_HLEAcquire((volatile __int64*)value, old, old) != old);
- break;
- }
- case _Py_memory_order_release:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64_HLERelease((volatile __int64*)value, old, old) != old);
- break;
- }
- case _Py_memory_order_relaxed:
- old = *value;
- break;
- default:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64((volatile __int64*)value, old, old) != old);
- break;
- }
- }
- return old;
-}
-
-#else
-#define _Py_atomic_load_64bit(ATOMIC_VAL, ORDER) *ATOMIC_VAL
-#endif
-
-inline int _Py_atomic_load_32bit(volatile int* value, int order) {
- long old;
- switch (order) {
- case _Py_memory_order_acquire:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange_HLEAcquire((volatile long*)value, old, old) != old);
- break;
- }
- case _Py_memory_order_release:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange_HLERelease((volatile long*)value, old, old) != old);
- break;
- }
- case _Py_memory_order_relaxed:
- old = *value;
- break;
- default:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange((volatile long*)value, old, old) != old);
- break;
- }
- }
- return old;
-}
-
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- if (sizeof(*ATOMIC_VAL._value) == 8) { \
- _Py_atomic_store_64bit((volatile long long*)ATOMIC_VAL._value, NEW_VAL, ORDER) } else { \
- _Py_atomic_store_32bit((volatile long*)ATOMIC_VAL._value, NEW_VAL, ORDER) }
-
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- ( \
- sizeof(*(ATOMIC_VAL._value)) == 8 ? \
- _Py_atomic_load_64bit((volatile long long*)ATOMIC_VAL._value, ORDER) : \
- _Py_atomic_load_32bit((volatile long*)ATOMIC_VAL._value, ORDER) \
- )
-#elif defined(_M_ARM) || defined(_M_ARM64)
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed,
- _Py_memory_order_acquire,
- _Py_memory_order_release,
- _Py_memory_order_acq_rel,
- _Py_memory_order_seq_cst
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- volatile uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- volatile int _value;
-} _Py_atomic_int;
-
-
-#if defined(_M_ARM64)
-#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) \
- switch (ORDER) { \
- case _Py_memory_order_acquire: \
- _InterlockedExchange64_acq((__int64 volatile*)ATOMIC_VAL, (__int64)NEW_VAL); \
- break; \
- case _Py_memory_order_release: \
- _InterlockedExchange64_rel((__int64 volatile*)ATOMIC_VAL, (__int64)NEW_VAL); \
- break; \
- default: \
- _InterlockedExchange64((__int64 volatile*)ATOMIC_VAL, (__int64)NEW_VAL); \
- break; \
- }
-#else
-#define _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER) ((void)0);
-#endif
-
-#define _Py_atomic_store_32bit(ATOMIC_VAL, NEW_VAL, ORDER) \
- switch (ORDER) { \
- case _Py_memory_order_acquire: \
- _InterlockedExchange_acq((volatile long*)ATOMIC_VAL, (int)NEW_VAL); \
- break; \
- case _Py_memory_order_release: \
- _InterlockedExchange_rel((volatile long*)ATOMIC_VAL, (int)NEW_VAL); \
- break; \
- default: \
- _InterlockedExchange((volatile long*)ATOMIC_VAL, (int)NEW_VAL); \
- break; \
- }
-
-#if defined(_M_ARM64)
-/* This has to be an intptr_t for now.
- gil_created() uses -1 as a sentinel value, if this returns
- a uintptr_t it will do an unsigned compare and crash
-*/
-inline intptr_t _Py_atomic_load_64bit(volatile uintptr_t* value, int order) {
- uintptr_t old;
- switch (order) {
- case _Py_memory_order_acquire:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64_acq(value, old, old) != old);
- break;
- }
- case _Py_memory_order_release:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64_rel(value, old, old) != old);
- break;
- }
- case _Py_memory_order_relaxed:
- old = *value;
- break;
- default:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange64(value, old, old) != old);
- break;
- }
- }
- return old;
-}
-
-#else
-#define _Py_atomic_load_64bit(ATOMIC_VAL, ORDER) *ATOMIC_VAL
-#endif
-
-inline int _Py_atomic_load_32bit(volatile int* value, int order) {
- int old;
- switch (order) {
- case _Py_memory_order_acquire:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange_acq(value, old, old) != old);
- break;
- }
- case _Py_memory_order_release:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange_rel(value, old, old) != old);
- break;
- }
- case _Py_memory_order_relaxed:
- old = *value;
- break;
- default:
- {
- do {
- old = *value;
- } while(_InterlockedCompareExchange(value, old, old) != old);
- break;
- }
- }
- return old;
-}
-
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- if (sizeof(*ATOMIC_VAL._value) == 8) { \
- _Py_atomic_store_64bit(ATOMIC_VAL._value, NEW_VAL, ORDER) } else { \
- _Py_atomic_store_32bit(ATOMIC_VAL._value, NEW_VAL, ORDER) }
-
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- ( \
- sizeof(*(ATOMIC_VAL._value)) == 8 ? \
- _Py_atomic_load_64bit(ATOMIC_VAL._value, ORDER) : \
- _Py_atomic_load_32bit(ATOMIC_VAL._value, ORDER) \
- )
-#endif
-#else /* !gcc x86 !_msc_ver */
-typedef enum _Py_memory_order {
- _Py_memory_order_relaxed,
- _Py_memory_order_acquire,
- _Py_memory_order_release,
- _Py_memory_order_acq_rel,
- _Py_memory_order_seq_cst
-} _Py_memory_order;
-
-typedef struct _Py_atomic_address {
- uintptr_t _value;
-} _Py_atomic_address;
-
-typedef struct _Py_atomic_int {
- int _value;
-} _Py_atomic_int;
-/* Fall back to other compilers and processors by assuming that simple
- volatile accesses are atomic. This is false, so people should port
- this. */
-#define _Py_atomic_signal_fence(/*memory_order*/ ORDER) ((void)0)
-#define _Py_atomic_thread_fence(/*memory_order*/ ORDER) ((void)0)
-#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
- ((ATOMIC_VAL)->_value = NEW_VAL)
-#define _Py_atomic_load_explicit(ATOMIC_VAL, ORDER) \
- ((ATOMIC_VAL)->_value)
-#endif
-
-/* Standardized shortcuts. */
-#define _Py_atomic_store(ATOMIC_VAL, NEW_VAL) \
- _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, _Py_memory_order_seq_cst)
-#define _Py_atomic_load(ATOMIC_VAL) \
- _Py_atomic_load_explicit(ATOMIC_VAL, _Py_memory_order_seq_cst)
-
-/* Python-local extensions */
-
-#define _Py_atomic_store_relaxed(ATOMIC_VAL, NEW_VAL) \
- _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, _Py_memory_order_relaxed)
-#define _Py_atomic_load_relaxed(ATOMIC_VAL) \
- _Py_atomic_load_explicit(ATOMIC_VAL, _Py_memory_order_relaxed)
-#endif /* Py_BUILD_CORE */
-#endif /* Py_ATOMIC_H */
diff --git a/EasyTrans/Include/pycapsule.h b/EasyTrans/Include/pycapsule.h
deleted file mode 100644
index d9ecda7a..00000000
--- a/EasyTrans/Include/pycapsule.h
+++ /dev/null
@@ -1,59 +0,0 @@
-
-/* Capsule objects let you wrap a C "void *" pointer in a Python
- object. They're a way of passing data through the Python interpreter
- without creating your own custom type.
-
- Capsules are used for communication between extension modules.
- They provide a way for an extension module to export a C interface
- to other extension modules, so that extension modules can use the
- Python import mechanism to link to one another.
-
- For more information, please see "c-api/capsule.html" in the
- documentation.
-*/
-
-#ifndef Py_CAPSULE_H
-#define Py_CAPSULE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_DATA(PyTypeObject) PyCapsule_Type;
-
-typedef void (*PyCapsule_Destructor)(PyObject *);
-
-#define PyCapsule_CheckExact(op) (Py_TYPE(op) == &PyCapsule_Type)
-
-
-PyAPI_FUNC(PyObject *) PyCapsule_New(
- void *pointer,
- const char *name,
- PyCapsule_Destructor destructor);
-
-PyAPI_FUNC(void *) PyCapsule_GetPointer(PyObject *capsule, const char *name);
-
-PyAPI_FUNC(PyCapsule_Destructor) PyCapsule_GetDestructor(PyObject *capsule);
-
-PyAPI_FUNC(const char *) PyCapsule_GetName(PyObject *capsule);
-
-PyAPI_FUNC(void *) PyCapsule_GetContext(PyObject *capsule);
-
-PyAPI_FUNC(int) PyCapsule_IsValid(PyObject *capsule, const char *name);
-
-PyAPI_FUNC(int) PyCapsule_SetPointer(PyObject *capsule, void *pointer);
-
-PyAPI_FUNC(int) PyCapsule_SetDestructor(PyObject *capsule, PyCapsule_Destructor destructor);
-
-PyAPI_FUNC(int) PyCapsule_SetName(PyObject *capsule, const char *name);
-
-PyAPI_FUNC(int) PyCapsule_SetContext(PyObject *capsule, void *context);
-
-PyAPI_FUNC(void *) PyCapsule_Import(
- const char *name, /* UTF-8 encoded string */
- int no_block);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_CAPSULE_H */
diff --git a/EasyTrans/Include/pyconfig.h b/EasyTrans/Include/pyconfig.h
deleted file mode 100644
index 46fc84e9..00000000
--- a/EasyTrans/Include/pyconfig.h
+++ /dev/null
@@ -1,680 +0,0 @@
-#ifndef Py_CONFIG_H
-#define Py_CONFIG_H
-
-/* pyconfig.h. NOT Generated automatically by configure.
-
-This is a manually maintained version used for the Watcom,
-Borland and Microsoft Visual C++ compilers. It is a
-standard part of the Python distribution.
-
-WINDOWS DEFINES:
-The code specific to Windows should be wrapped around one of
-the following #defines
-
-MS_WIN64 - Code specific to the MS Win64 API
-MS_WIN32 - Code specific to the MS Win32 (and Win64) API (obsolete, this covers all supported APIs)
-MS_WINDOWS - Code specific to Windows, but all versions.
-Py_ENABLE_SHARED - Code if the Python core is built as a DLL.
-
-Also note that neither "_M_IX86" or "_MSC_VER" should be used for
-any purpose other than "Windows Intel x86 specific" and "Microsoft
-compiler specific". Therefore, these should be very rare.
-
-
-NOTE: The following symbols are deprecated:
-NT, USE_DL_EXPORT, USE_DL_IMPORT, DL_EXPORT, DL_IMPORT
-MS_CORE_DLL.
-
-WIN32 is still required for the locale module.
-
-*/
-
-/* Deprecated USE_DL_EXPORT macro - please use Py_BUILD_CORE */
-#ifdef USE_DL_EXPORT
-# define Py_BUILD_CORE
-#endif /* USE_DL_EXPORT */
-
-/* Visual Studio 2005 introduces deprecation warnings for
- "insecure" and POSIX functions. The insecure functions should
- be replaced by *_s versions (according to Microsoft); the
- POSIX functions by _* versions (which, according to Microsoft,
- would be ISO C conforming). Neither renaming is feasible, so
- we just silence the warnings. */
-
-#ifndef _CRT_SECURE_NO_DEPRECATE
-#define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-#ifndef _CRT_NONSTDC_NO_DEPRECATE
-#define _CRT_NONSTDC_NO_DEPRECATE 1
-#endif
-
-#define HAVE_IO_H
-#define HAVE_SYS_UTIME_H
-#define HAVE_TEMPNAM
-#define HAVE_TMPFILE
-#define HAVE_TMPNAM
-#define HAVE_CLOCK
-#define HAVE_STRERROR
-
-#include
-
-#define HAVE_HYPOT
-#define HAVE_STRFTIME
-#define DONT_HAVE_SIG_ALARM
-#define DONT_HAVE_SIG_PAUSE
-#define LONG_BIT 32
-#define WORD_BIT 32
-
-#define MS_WIN32 /* only support win32 and greater. */
-#define MS_WINDOWS
-#ifndef PYTHONPATH
-# define PYTHONPATH L".\\DLLs;.\\lib"
-#endif
-#define NT_THREADS
-#define WITH_THREAD
-#ifndef NETSCAPE_PI
-#define USE_SOCKET
-#endif
-
-
-/* Compiler specific defines */
-
-/* ------------------------------------------------------------------------*/
-/* Microsoft C defines _MSC_VER */
-#ifdef _MSC_VER
-
-/* We want COMPILER to expand to a string containing _MSC_VER's *value*.
- * This is horridly tricky, because the stringization operator only works
- * on macro arguments, and doesn't evaluate macros passed *as* arguments.
- * Attempts simpler than the following appear doomed to produce "_MSC_VER"
- * literally in the string.
- */
-#define _Py_PASTE_VERSION(SUFFIX) \
- ("[MSC v." _Py_STRINGIZE(_MSC_VER) " " SUFFIX "]")
-/* e.g., this produces, after compile-time string catenation,
- * ("[MSC v.1200 32 bit (Intel)]")
- *
- * _Py_STRINGIZE(_MSC_VER) expands to
- * _Py_STRINGIZE1((_MSC_VER)) expands to
- * _Py_STRINGIZE2(_MSC_VER) but as this call is the result of token-pasting
- * it's scanned again for macros and so further expands to (under MSVC 6)
- * _Py_STRINGIZE2(1200) which then expands to
- * "1200"
- */
-#define _Py_STRINGIZE(X) _Py_STRINGIZE1((X))
-#define _Py_STRINGIZE1(X) _Py_STRINGIZE2 ## X
-#define _Py_STRINGIZE2(X) #X
-
-/* MSVC defines _WINxx to differentiate the windows platform types
-
- Note that for compatibility reasons _WIN32 is defined on Win32
- *and* on Win64. For the same reasons, in Python, MS_WIN32 is
- defined on Win32 *and* Win64. Win32 only code must therefore be
- guarded as follows:
- #if defined(MS_WIN32) && !defined(MS_WIN64)
-*/
-#ifdef _WIN64
-#define MS_WIN64
-#endif
-
-/* set the COMPILER */
-#ifdef MS_WIN64
-#if defined(_M_X64) || defined(_M_AMD64)
-#if defined(__INTEL_COMPILER)
-#define COMPILER ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 64 bit (amd64) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]")
-#else
-#define COMPILER _Py_PASTE_VERSION("64 bit (AMD64)")
-#endif /* __INTEL_COMPILER */
-#define PYD_PLATFORM_TAG "win_amd64"
-#else
-#define COMPILER _Py_PASTE_VERSION("64 bit (Unknown)")
-#endif
-#endif /* MS_WIN64 */
-
-/* set the version macros for the windows headers */
-/* Python 3.5+ requires Windows Vista or greater */
-#define Py_WINVER 0x0600 /* _WIN32_WINNT_VISTA */
-#define Py_NTDDI NTDDI_VISTA
-
-/* We only set these values when building Python - we don't want to force
- these values on extensions, as that will affect the prototypes and
- structures exposed in the Windows headers. Even when building Python, we
- allow a single source file to override this - they may need access to
- structures etc so it can optionally use new Windows features if it
- determines at runtime they are available.
-*/
-#if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_BUILTIN) || defined(Py_BUILD_CORE_MODULE)
-#ifndef NTDDI_VERSION
-#define NTDDI_VERSION Py_NTDDI
-#endif
-#ifndef WINVER
-#define WINVER Py_WINVER
-#endif
-#ifndef _WIN32_WINNT
-#define _WIN32_WINNT Py_WINVER
-#endif
-#endif
-
-/* _W64 is not defined for VC6 or eVC4 */
-#ifndef _W64
-#define _W64
-#endif
-
-/* Define like size_t, omitting the "unsigned" */
-#ifdef MS_WIN64
-typedef __int64 ssize_t;
-#else
-typedef _W64 int ssize_t;
-#endif
-#define HAVE_SSIZE_T 1
-
-#if defined(MS_WIN32) && !defined(MS_WIN64)
-#if defined(_M_IX86)
-#if defined(__INTEL_COMPILER)
-#define COMPILER ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 32 bit (Intel) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]")
-#else
-#define COMPILER _Py_PASTE_VERSION("32 bit (Intel)")
-#endif /* __INTEL_COMPILER */
-#define PYD_PLATFORM_TAG "win32"
-#elif defined(_M_ARM)
-#define COMPILER _Py_PASTE_VERSION("32 bit (ARM)")
-#define PYD_PLATFORM_TAG "win_arm"
-#else
-#define COMPILER _Py_PASTE_VERSION("32 bit (Unknown)")
-#endif
-#endif /* MS_WIN32 && !MS_WIN64 */
-
-typedef int pid_t;
-
-#include
-#define Py_IS_NAN _isnan
-#define Py_IS_INFINITY(X) (!_finite(X) && !_isnan(X))
-#define Py_IS_FINITE(X) _finite(X)
-#define copysign _copysign
-
-/* Side by Side assemblies supported in VS 2005 and VS 2008 but not 2010*/
-#if _MSC_VER >= 1400 && _MSC_VER < 1600
-#define HAVE_SXS 1
-#endif
-
-/* define some ANSI types that are not defined in earlier Win headers */
-#if _MSC_VER >= 1200
-/* This file only exists in VC 6.0 or higher */
-#include
-#endif
-
-#endif /* _MSC_VER */
-
-/* ------------------------------------------------------------------------*/
-/* egcs/gnu-win32 defines __GNUC__ and _WIN32 */
-#if defined(__GNUC__) && defined(_WIN32)
-/* XXX These defines are likely incomplete, but should be easy to fix.
- They should be complete enough to build extension modules. */
-/* Suggested by Rene Liebscher to avoid a GCC 2.91.*
- bug that requires structure imports. More recent versions of the
- compiler don't exhibit this bug.
-*/
-#if (__GNUC__==2) && (__GNUC_MINOR__<=91)
-#warning "Please use an up-to-date version of gcc! (>2.91 recommended)"
-#endif
-
-#define COMPILER "[gcc]"
-#define PY_LONG_LONG long long
-#define PY_LLONG_MIN LLONG_MIN
-#define PY_LLONG_MAX LLONG_MAX
-#define PY_ULLONG_MAX ULLONG_MAX
-#endif /* GNUC */
-
-/* ------------------------------------------------------------------------*/
-/* lcc-win32 defines __LCC__ */
-#if defined(__LCC__)
-/* XXX These defines are likely incomplete, but should be easy to fix.
- They should be complete enough to build extension modules. */
-
-#define COMPILER "[lcc-win32]"
-typedef int pid_t;
-/* __declspec() is supported here too - do nothing to get the defaults */
-
-#endif /* LCC */
-
-/* ------------------------------------------------------------------------*/
-/* End of compilers - finish up */
-
-#ifndef NO_STDIO_H
-# include
-#endif
-
-/* 64 bit ints are usually spelt __int64 unless compiler has overridden */
-#ifndef PY_LONG_LONG
-# define PY_LONG_LONG __int64
-# define PY_LLONG_MAX _I64_MAX
-# define PY_LLONG_MIN _I64_MIN
-# define PY_ULLONG_MAX _UI64_MAX
-#endif
-
-/* For Windows the Python core is in a DLL by default. Test
-Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
-#if !defined(MS_NO_COREDLL) && !defined(Py_NO_ENABLE_SHARED)
-# define Py_ENABLE_SHARED 1 /* standard symbol for shared library */
-# define MS_COREDLL /* deprecated old symbol */
-#endif /* !MS_NO_COREDLL && ... */
-
-/* All windows compilers that use this header support __declspec */
-#define HAVE_DECLSPEC_DLL
-
-/* For an MSVC DLL, we can nominate the .lib files used by extensions */
-#ifdef MS_COREDLL
-# if !defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_BUILTIN)
- /* not building the core - must be an ext */
-# if defined(_MSC_VER)
- /* So MSVC users need not specify the .lib
- file in their Makefile (other compilers are
- generally taken care of by distutils.) */
-# if defined(_DEBUG)
-# pragma comment(lib,"python37_d.lib")
-# elif defined(Py_LIMITED_API)
-# pragma comment(lib,"python3.lib")
-# else
-# pragma comment(lib,"python37.lib")
-# endif /* _DEBUG */
-# endif /* _MSC_VER */
-# endif /* Py_BUILD_CORE */
-#endif /* MS_COREDLL */
-
-#if defined(MS_WIN64)
-/* maintain "win32" sys.platform for backward compatibility of Python code,
- the Win64 API should be close enough to the Win32 API to make this
- preferable */
-# define PLATFORM "win32"
-# define SIZEOF_VOID_P 8
-# define SIZEOF_TIME_T 8
-# define SIZEOF_OFF_T 4
-# define SIZEOF_FPOS_T 8
-# define SIZEOF_HKEY 8
-# define SIZEOF_SIZE_T 8
-/* configure.ac defines HAVE_LARGEFILE_SUPPORT iff HAVE_LONG_LONG,
- sizeof(off_t) > sizeof(long), and sizeof(PY_LONG_LONG) >= sizeof(off_t).
- On Win64 the second condition is not true, but if fpos_t replaces off_t
- then this is true. The uses of HAVE_LARGEFILE_SUPPORT imply that Win64
- should define this. */
-# define HAVE_LARGEFILE_SUPPORT
-#elif defined(MS_WIN32)
-# define PLATFORM "win32"
-# define HAVE_LARGEFILE_SUPPORT
-# define SIZEOF_VOID_P 4
-# define SIZEOF_OFF_T 4
-# define SIZEOF_FPOS_T 8
-# define SIZEOF_HKEY 4
-# define SIZEOF_SIZE_T 4
- /* MS VS2005 changes time_t to a 64-bit type on all platforms */
-# if defined(_MSC_VER) && _MSC_VER >= 1400
-# define SIZEOF_TIME_T 8
-# else
-# define SIZEOF_TIME_T 4
-# endif
-#endif
-
-#ifdef _DEBUG
-# define Py_DEBUG
-#endif
-
-
-#ifdef MS_WIN32
-
-#define SIZEOF_SHORT 2
-#define SIZEOF_INT 4
-#define SIZEOF_LONG 4
-#define SIZEOF_LONG_LONG 8
-#define SIZEOF_DOUBLE 8
-#define SIZEOF_FLOAT 4
-
-/* VC 7.1 has them and VC 6.0 does not. VC 6.0 has a version number of 1200.
- Microsoft eMbedded Visual C++ 4.0 has a version number of 1201 and doesn't
- define these.
- If some compiler does not provide them, modify the #if appropriately. */
-#if defined(_MSC_VER)
-#if _MSC_VER > 1300
-#define HAVE_UINTPTR_T 1
-#define HAVE_INTPTR_T 1
-#else
-/* VC6, VS 2002 and eVC4 don't support the C99 LL suffix for 64-bit integer literals */
-#define Py_LL(x) x##I64
-#endif /* _MSC_VER > 1300 */
-#endif /* _MSC_VER */
-
-#endif
-
-/* define signed and unsigned exact-width 32-bit and 64-bit types, used in the
- implementation of Python integers. */
-#define PY_UINT32_T uint32_t
-#define PY_UINT64_T uint64_t
-#define PY_INT32_T int32_t
-#define PY_INT64_T int64_t
-
-/* Fairly standard from here! */
-
-/* Define to 1 if you have the `copysign' function. */
-#define HAVE_COPYSIGN 1
-
-/* Define to 1 if you have the `round' function. */
-#if _MSC_VER >= 1800
-#define HAVE_ROUND 1
-#endif
-
-/* Define to 1 if you have the `isinf' macro. */
-#define HAVE_DECL_ISINF 1
-
-/* Define to 1 if you have the `isnan' function. */
-#define HAVE_DECL_ISNAN 1
-
-/* Define if on AIX 3.
- System headers sometimes define this.
- We just want to avoid a redefinition error message. */
-#ifndef _ALL_SOURCE
-/* #undef _ALL_SOURCE */
-#endif
-
-/* Define to empty if the keyword does not work. */
-/* #define const */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_CONIO_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_DIRECT_H 1
-
-/* Define if you have dirent.h. */
-/* #define DIRENT 1 */
-
-/* Define to the type of elements in the array set by `getgroups'.
- Usually this is either `int' or `gid_t'. */
-/* #undef GETGROUPS_T */
-
-/* Define to `int' if doesn't define. */
-/* #undef gid_t */
-
-/* Define if your struct tm has tm_zone. */
-/* #undef HAVE_TM_ZONE */
-
-/* Define if you don't have tm_zone but do have the external array
- tzname. */
-#define HAVE_TZNAME
-
-/* Define to `int' if doesn't define. */
-/* #undef mode_t */
-
-/* Define if you don't have dirent.h, but have ndir.h. */
-/* #undef NDIR */
-
-/* Define to `long' if doesn't define. */
-/* #undef off_t */
-
-/* Define to `int' if doesn't define. */
-/* #undef pid_t */
-
-/* Define if the system does not provide POSIX.1 features except
- with this defined. */
-/* #undef _POSIX_1_SOURCE */
-
-/* Define if you need to in order for stat and other things to work. */
-/* #undef _POSIX_SOURCE */
-
-/* Define as the return type of signal handlers (int or void). */
-#define RETSIGTYPE void
-
-/* Define to `unsigned' if doesn't define. */
-/* #undef size_t */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if you don't have dirent.h, but have sys/dir.h. */
-/* #undef SYSDIR */
-
-/* Define if you don't have dirent.h, but have sys/ndir.h. */
-/* #undef SYSNDIR */
-
-/* Define if you can safely include both and . */
-/* #undef TIME_WITH_SYS_TIME */
-
-/* Define if your declares struct tm. */
-/* #define TM_IN_SYS_TIME 1 */
-
-/* Define to `int' if doesn't define. */
-/* #undef uid_t */
-
-/* Define if the closedir function returns void instead of int. */
-/* #undef VOID_CLOSEDIR */
-
-/* Define if getpgrp() must be called as getpgrp(0)
- and (consequently) setpgrp() as setpgrp(0, 0). */
-/* #undef GETPGRP_HAVE_ARGS */
-
-/* Define this if your time.h defines altzone */
-/* #define HAVE_ALTZONE */
-
-/* Define if you have the putenv function. */
-#define HAVE_PUTENV
-
-/* Define if your compiler supports function prototypes */
-#define HAVE_PROTOTYPES
-
-/* Define if you can safely include both and
- (which you can't on SCO ODT 3.0). */
-/* #undef SYS_SELECT_WITH_SYS_TIME */
-
-/* Define if you want documentation strings in extension modules */
-#define WITH_DOC_STRINGS 1
-
-/* Define if you want to compile in rudimentary thread support */
-/* #undef WITH_THREAD */
-
-/* Define if you want to use the GNU readline library */
-/* #define WITH_READLINE 1 */
-
-/* Use Python's own small-block memory-allocator. */
-#define WITH_PYMALLOC 1
-
-/* Define if you have clock. */
-/* #define HAVE_CLOCK */
-
-/* Define when any dynamic module loading is enabled */
-#define HAVE_DYNAMIC_LOADING
-
-/* Define if you have ftime. */
-#define HAVE_FTIME
-
-/* Define if you have getpeername. */
-#define HAVE_GETPEERNAME
-
-/* Define if you have getpgrp. */
-/* #undef HAVE_GETPGRP */
-
-/* Define if you have getpid. */
-#define HAVE_GETPID
-
-/* Define if you have gettimeofday. */
-/* #undef HAVE_GETTIMEOFDAY */
-
-/* Define if you have getwd. */
-/* #undef HAVE_GETWD */
-
-/* Define if you have lstat. */
-/* #undef HAVE_LSTAT */
-
-/* Define if you have the mktime function. */
-#define HAVE_MKTIME
-
-/* Define if you have nice. */
-/* #undef HAVE_NICE */
-
-/* Define if you have readlink. */
-/* #undef HAVE_READLINK */
-
-/* Define if you have setpgid. */
-/* #undef HAVE_SETPGID */
-
-/* Define if you have setpgrp. */
-/* #undef HAVE_SETPGRP */
-
-/* Define if you have setsid. */
-/* #undef HAVE_SETSID */
-
-/* Define if you have setvbuf. */
-#define HAVE_SETVBUF
-
-/* Define if you have siginterrupt. */
-/* #undef HAVE_SIGINTERRUPT */
-
-/* Define if you have symlink. */
-/* #undef HAVE_SYMLINK */
-
-/* Define if you have tcgetpgrp. */
-/* #undef HAVE_TCGETPGRP */
-
-/* Define if you have tcsetpgrp. */
-/* #undef HAVE_TCSETPGRP */
-
-/* Define if you have times. */
-/* #undef HAVE_TIMES */
-
-/* Define if you have uname. */
-/* #undef HAVE_UNAME */
-
-/* Define if you have waitpid. */
-/* #undef HAVE_WAITPID */
-
-/* Define to 1 if you have the `wcsftime' function. */
-#if defined(_MSC_VER) && _MSC_VER >= 1310
-#define HAVE_WCSFTIME 1
-#endif
-
-/* Define to 1 if you have the `wcscoll' function. */
-#define HAVE_WCSCOLL 1
-
-/* Define to 1 if you have the `wcsxfrm' function. */
-#define HAVE_WCSXFRM 1
-
-/* Define if the zlib library has inflateCopy */
-#define HAVE_ZLIB_COPY 1
-
-/* Define if you have the header file. */
-/* #undef HAVE_DLFCN_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_ERRNO_H 1
-
-/* Define if you have the header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_PROCESS_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SIGNAL_H 1
-
-/* Define if you have the prototypes. */
-#define HAVE_STDARG_PROTOTYPES
-
-/* Define if you have the header file. */
-#define HAVE_STDDEF_H 1
-
-/* Define if you have the header file. */
-/* #undef HAVE_SYS_AUDIOIO_H */
-
-/* Define if you have the header file. */
-/* #define HAVE_SYS_PARAM_H 1 */
-
-/* Define if you have the header file. */
-/* #define HAVE_SYS_SELECT_H 1 */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define if you have the header file. */
-/* #define HAVE_SYS_TIME_H 1 */
-
-/* Define if you have the header file. */
-/* #define HAVE_SYS_TIMES_H 1 */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define if you have the header file. */
-/* #define HAVE_SYS_UN_H 1 */
-
-/* Define if you have the header file. */
-/* #define HAVE_SYS_UTIME_H 1 */
-
-/* Define if you have the header file. */
-/* #define HAVE_SYS_UTSNAME_H 1 */
-
-/* Define if you have the header file. */
-/* #define HAVE_UNISTD_H 1 */
-
-/* Define if you have the header file. */
-/* #define HAVE_UTIME_H 1 */
-
-/* Define if the compiler provides a wchar.h header file. */
-#define HAVE_WCHAR_H 1
-
-/* The size of `wchar_t', as computed by sizeof. */
-#define SIZEOF_WCHAR_T 2
-
-/* The size of `_Bool', as computed by sizeof. */
-#define SIZEOF__BOOL 1
-
-/* The size of `pid_t', as computed by sizeof. */
-#define SIZEOF_PID_T SIZEOF_INT
-
-/* Define if you have the dl library (-ldl). */
-/* #undef HAVE_LIBDL */
-
-/* Define if you have the mpc library (-lmpc). */
-/* #undef HAVE_LIBMPC */
-
-/* Define if you have the nsl library (-lnsl). */
-#define HAVE_LIBNSL 1
-
-/* Define if you have the seq library (-lseq). */
-/* #undef HAVE_LIBSEQ */
-
-/* Define if you have the socket library (-lsocket). */
-#define HAVE_LIBSOCKET 1
-
-/* Define if you have the sun library (-lsun). */
-/* #undef HAVE_LIBSUN */
-
-/* Define if you have the termcap library (-ltermcap). */
-/* #undef HAVE_LIBTERMCAP */
-
-/* Define if you have the termlib library (-ltermlib). */
-/* #undef HAVE_LIBTERMLIB */
-
-/* Define if you have the thread library (-lthread). */
-/* #undef HAVE_LIBTHREAD */
-
-/* WinSock does not use a bitmask in select, and uses
- socket handles greater than FD_SETSIZE */
-#define Py_SOCKET_FD_CAN_BE_GE_FD_SETSIZE
-
-/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the
- least significant byte first */
-#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1
-
-/* Define to 1 if you have the `erf' function. */
-#define HAVE_ERF 1
-
-/* Define to 1 if you have the `erfc' function. */
-#define HAVE_ERFC 1
-
-/* Define if you have the 'inet_pton' function. */
-#define HAVE_INET_PTON 1
-
-/* framework name */
-#define _PYTHONFRAMEWORK ""
-
-/* Define if libssl has X509_VERIFY_PARAM_set1_host and related function */
-#define HAVE_X509_VERIFY_PARAM_SET1_HOST 1
-
-#endif /* !Py_CONFIG_H */
diff --git a/EasyTrans/Include/pyctype.h b/EasyTrans/Include/pyctype.h
deleted file mode 100644
index 6bce63ee..00000000
--- a/EasyTrans/Include/pyctype.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef Py_LIMITED_API
-#ifndef PYCTYPE_H
-#define PYCTYPE_H
-
-#define PY_CTF_LOWER 0x01
-#define PY_CTF_UPPER 0x02
-#define PY_CTF_ALPHA (PY_CTF_LOWER|PY_CTF_UPPER)
-#define PY_CTF_DIGIT 0x04
-#define PY_CTF_ALNUM (PY_CTF_ALPHA|PY_CTF_DIGIT)
-#define PY_CTF_SPACE 0x08
-#define PY_CTF_XDIGIT 0x10
-
-PyAPI_DATA(const unsigned int) _Py_ctype_table[256];
-
-/* Unlike their C counterparts, the following macros are not meant to
- * handle an int with any of the values [EOF, 0-UCHAR_MAX]. The argument
- * must be a signed/unsigned char. */
-#define Py_ISLOWER(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_LOWER)
-#define Py_ISUPPER(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_UPPER)
-#define Py_ISALPHA(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_ALPHA)
-#define Py_ISDIGIT(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_DIGIT)
-#define Py_ISXDIGIT(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_XDIGIT)
-#define Py_ISALNUM(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_ALNUM)
-#define Py_ISSPACE(c) (_Py_ctype_table[Py_CHARMASK(c)] & PY_CTF_SPACE)
-
-PyAPI_DATA(const unsigned char) _Py_ctype_tolower[256];
-PyAPI_DATA(const unsigned char) _Py_ctype_toupper[256];
-
-#define Py_TOLOWER(c) (_Py_ctype_tolower[Py_CHARMASK(c)])
-#define Py_TOUPPER(c) (_Py_ctype_toupper[Py_CHARMASK(c)])
-
-#endif /* !PYCTYPE_H */
-#endif /* !Py_LIMITED_API */
diff --git a/EasyTrans/Include/pydebug.h b/EasyTrans/Include/pydebug.h
deleted file mode 100644
index bd4aafe3..00000000
--- a/EasyTrans/Include/pydebug.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef Py_LIMITED_API
-#ifndef Py_PYDEBUG_H
-#define Py_PYDEBUG_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* These global variable are defined in pylifecycle.c */
-/* XXX (ncoghlan): move these declarations to pylifecycle.h? */
-PyAPI_DATA(int) Py_DebugFlag;
-PyAPI_DATA(int) Py_VerboseFlag;
-PyAPI_DATA(int) Py_QuietFlag;
-PyAPI_DATA(int) Py_InteractiveFlag;
-PyAPI_DATA(int) Py_InspectFlag;
-PyAPI_DATA(int) Py_OptimizeFlag;
-PyAPI_DATA(int) Py_NoSiteFlag;
-PyAPI_DATA(int) Py_BytesWarningFlag;
-PyAPI_DATA(int) Py_FrozenFlag;
-PyAPI_DATA(int) Py_IgnoreEnvironmentFlag;
-PyAPI_DATA(int) Py_DontWriteBytecodeFlag;
-PyAPI_DATA(int) Py_NoUserSiteDirectory;
-PyAPI_DATA(int) Py_UnbufferedStdioFlag;
-PyAPI_DATA(int) Py_HashRandomizationFlag;
-PyAPI_DATA(int) Py_IsolatedFlag;
-
-#ifdef MS_WINDOWS
-PyAPI_DATA(int) Py_LegacyWindowsFSEncodingFlag;
-PyAPI_DATA(int) Py_LegacyWindowsStdioFlag;
-#endif
-
-/* this is a wrapper around getenv() that pays attention to
- Py_IgnoreEnvironmentFlag. It should be used for getting variables like
- PYTHONPATH and PYTHONHOME from the environment */
-#define Py_GETENV(s) (Py_IgnoreEnvironmentFlag ? NULL : getenv(s))
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PYDEBUG_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/pydtrace.h b/EasyTrans/Include/pydtrace.h
deleted file mode 100644
index 7a042781..00000000
--- a/EasyTrans/Include/pydtrace.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Static DTrace probes interface */
-
-#ifndef Py_DTRACE_H
-#define Py_DTRACE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef WITH_DTRACE
-
-#include "pydtrace_probes.h"
-
-/* pydtrace_probes.h, on systems with DTrace, is auto-generated to include
- `PyDTrace_{PROBE}` and `PyDTrace_{PROBE}_ENABLED()` macros for every probe
- defined in pydtrace_provider.d.
-
- Calling these functions must be guarded by a `PyDTrace_{PROBE}_ENABLED()`
- check to minimize performance impact when probing is off. For example:
-
- if (PyDTrace_FUNCTION_ENTRY_ENABLED())
- PyDTrace_FUNCTION_ENTRY(f);
-*/
-
-#else
-
-/* Without DTrace, compile to nothing. */
-
-static inline void PyDTrace_LINE(const char *arg0, const char *arg1, int arg2) {}
-static inline void PyDTrace_FUNCTION_ENTRY(const char *arg0, const char *arg1, int arg2) {}
-static inline void PyDTrace_FUNCTION_RETURN(const char *arg0, const char *arg1, int arg2) {}
-static inline void PyDTrace_GC_START(int arg0) {}
-static inline void PyDTrace_GC_DONE(Py_ssize_t arg0) {}
-static inline void PyDTrace_INSTANCE_NEW_START(int arg0) {}
-static inline void PyDTrace_INSTANCE_NEW_DONE(int arg0) {}
-static inline void PyDTrace_INSTANCE_DELETE_START(int arg0) {}
-static inline void PyDTrace_INSTANCE_DELETE_DONE(int arg0) {}
-static inline void PyDTrace_IMPORT_FIND_LOAD_START(const char *arg0) {}
-static inline void PyDTrace_IMPORT_FIND_LOAD_DONE(const char *arg0, int arg1) {}
-
-static inline int PyDTrace_LINE_ENABLED(void) { return 0; }
-static inline int PyDTrace_FUNCTION_ENTRY_ENABLED(void) { return 0; }
-static inline int PyDTrace_FUNCTION_RETURN_ENABLED(void) { return 0; }
-static inline int PyDTrace_GC_START_ENABLED(void) { return 0; }
-static inline int PyDTrace_GC_DONE_ENABLED(void) { return 0; }
-static inline int PyDTrace_INSTANCE_NEW_START_ENABLED(void) { return 0; }
-static inline int PyDTrace_INSTANCE_NEW_DONE_ENABLED(void) { return 0; }
-static inline int PyDTrace_INSTANCE_DELETE_START_ENABLED(void) { return 0; }
-static inline int PyDTrace_INSTANCE_DELETE_DONE_ENABLED(void) { return 0; }
-static inline int PyDTrace_IMPORT_FIND_LOAD_START_ENABLED(void) { return 0; }
-static inline int PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED(void) { return 0; }
-
-#endif /* !WITH_DTRACE */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_DTRACE_H */
diff --git a/EasyTrans/Include/pyerrors.h b/EasyTrans/Include/pyerrors.h
deleted file mode 100644
index f49d4e8b..00000000
--- a/EasyTrans/Include/pyerrors.h
+++ /dev/null
@@ -1,504 +0,0 @@
-#ifndef Py_ERRORS_H
-#define Py_ERRORS_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Error objects */
-
-#ifndef Py_LIMITED_API
-/* PyException_HEAD defines the initial segment of every exception class. */
-#define PyException_HEAD PyObject_HEAD PyObject *dict;\
- PyObject *args; PyObject *traceback;\
- PyObject *context; PyObject *cause;\
- char suppress_context;
-
-typedef struct {
- PyException_HEAD
-} PyBaseExceptionObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *msg;
- PyObject *filename;
- PyObject *lineno;
- PyObject *offset;
- PyObject *text;
- PyObject *print_file_and_line;
-} PySyntaxErrorObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *msg;
- PyObject *name;
- PyObject *path;
-} PyImportErrorObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *encoding;
- PyObject *object;
- Py_ssize_t start;
- Py_ssize_t end;
- PyObject *reason;
-} PyUnicodeErrorObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *code;
-} PySystemExitObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *myerrno;
- PyObject *strerror;
- PyObject *filename;
- PyObject *filename2;
-#ifdef MS_WINDOWS
- PyObject *winerror;
-#endif
- Py_ssize_t written; /* only for BlockingIOError, -1 otherwise */
-} PyOSErrorObject;
-
-typedef struct {
- PyException_HEAD
- PyObject *value;
-} PyStopIterationObject;
-
-/* Compatibility typedefs */
-typedef PyOSErrorObject PyEnvironmentErrorObject;
-#ifdef MS_WINDOWS
-typedef PyOSErrorObject PyWindowsErrorObject;
-#endif
-#endif /* !Py_LIMITED_API */
-
-/* Error handling definitions */
-
-PyAPI_FUNC(void) PyErr_SetNone(PyObject *);
-PyAPI_FUNC(void) PyErr_SetObject(PyObject *, PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyErr_SetKeyError(PyObject *);
-_PyErr_StackItem *_PyErr_GetTopmostException(PyThreadState *tstate);
-#endif
-PyAPI_FUNC(void) PyErr_SetString(
- PyObject *exception,
- const char *string /* decoded from utf-8 */
- );
-PyAPI_FUNC(PyObject *) PyErr_Occurred(void);
-PyAPI_FUNC(void) PyErr_Clear(void);
-PyAPI_FUNC(void) PyErr_Fetch(PyObject **, PyObject **, PyObject **);
-PyAPI_FUNC(void) PyErr_Restore(PyObject *, PyObject *, PyObject *);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(void) PyErr_GetExcInfo(PyObject **, PyObject **, PyObject **);
-PyAPI_FUNC(void) PyErr_SetExcInfo(PyObject *, PyObject *, PyObject *);
-#endif
-
-#if defined(__clang__) || \
- (defined(__GNUC__) && \
- ((__GNUC__ >= 3) || \
- (__GNUC__ == 2) && (__GNUC_MINOR__ >= 5)))
-#define _Py_NO_RETURN __attribute__((__noreturn__))
-#else
-#define _Py_NO_RETURN
-#endif
-
-/* Defined in Python/pylifecycle.c */
-PyAPI_FUNC(void) Py_FatalError(const char *message) _Py_NO_RETURN;
-
-#if defined(Py_DEBUG) || defined(Py_LIMITED_API)
-#define _PyErr_OCCURRED() PyErr_Occurred()
-#else
-#define _PyErr_OCCURRED() (PyThreadState_GET()->curexc_type)
-#endif
-
-/* Error testing and normalization */
-PyAPI_FUNC(int) PyErr_GivenExceptionMatches(PyObject *, PyObject *);
-PyAPI_FUNC(int) PyErr_ExceptionMatches(PyObject *);
-PyAPI_FUNC(void) PyErr_NormalizeException(PyObject**, PyObject**, PyObject**);
-
-/* Traceback manipulation (PEP 3134) */
-PyAPI_FUNC(int) PyException_SetTraceback(PyObject *, PyObject *);
-PyAPI_FUNC(PyObject *) PyException_GetTraceback(PyObject *);
-
-/* Cause manipulation (PEP 3134) */
-PyAPI_FUNC(PyObject *) PyException_GetCause(PyObject *);
-PyAPI_FUNC(void) PyException_SetCause(PyObject *, PyObject *);
-
-/* Context manipulation (PEP 3134) */
-PyAPI_FUNC(PyObject *) PyException_GetContext(PyObject *);
-PyAPI_FUNC(void) PyException_SetContext(PyObject *, PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *);
-#endif
-
-/* */
-
-#define PyExceptionClass_Check(x) \
- (PyType_Check((x)) && \
- PyType_FastSubclass((PyTypeObject*)(x), Py_TPFLAGS_BASE_EXC_SUBCLASS))
-
-#define PyExceptionInstance_Check(x) \
- PyType_FastSubclass((x)->ob_type, Py_TPFLAGS_BASE_EXC_SUBCLASS)
-
-#define PyExceptionClass_Name(x) \
- ((char *)(((PyTypeObject*)(x))->tp_name))
-
-#define PyExceptionInstance_Class(x) ((PyObject*)((x)->ob_type))
-
-
-/* Predefined exceptions */
-
-PyAPI_DATA(PyObject *) PyExc_BaseException;
-PyAPI_DATA(PyObject *) PyExc_Exception;
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-PyAPI_DATA(PyObject *) PyExc_StopAsyncIteration;
-#endif
-PyAPI_DATA(PyObject *) PyExc_StopIteration;
-PyAPI_DATA(PyObject *) PyExc_GeneratorExit;
-PyAPI_DATA(PyObject *) PyExc_ArithmeticError;
-PyAPI_DATA(PyObject *) PyExc_LookupError;
-
-PyAPI_DATA(PyObject *) PyExc_AssertionError;
-PyAPI_DATA(PyObject *) PyExc_AttributeError;
-PyAPI_DATA(PyObject *) PyExc_BufferError;
-PyAPI_DATA(PyObject *) PyExc_EOFError;
-PyAPI_DATA(PyObject *) PyExc_FloatingPointError;
-PyAPI_DATA(PyObject *) PyExc_OSError;
-PyAPI_DATA(PyObject *) PyExc_ImportError;
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000
-PyAPI_DATA(PyObject *) PyExc_ModuleNotFoundError;
-#endif
-PyAPI_DATA(PyObject *) PyExc_IndexError;
-PyAPI_DATA(PyObject *) PyExc_KeyError;
-PyAPI_DATA(PyObject *) PyExc_KeyboardInterrupt;
-PyAPI_DATA(PyObject *) PyExc_MemoryError;
-PyAPI_DATA(PyObject *) PyExc_NameError;
-PyAPI_DATA(PyObject *) PyExc_OverflowError;
-PyAPI_DATA(PyObject *) PyExc_RuntimeError;
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-PyAPI_DATA(PyObject *) PyExc_RecursionError;
-#endif
-PyAPI_DATA(PyObject *) PyExc_NotImplementedError;
-PyAPI_DATA(PyObject *) PyExc_SyntaxError;
-PyAPI_DATA(PyObject *) PyExc_IndentationError;
-PyAPI_DATA(PyObject *) PyExc_TabError;
-PyAPI_DATA(PyObject *) PyExc_ReferenceError;
-PyAPI_DATA(PyObject *) PyExc_SystemError;
-PyAPI_DATA(PyObject *) PyExc_SystemExit;
-PyAPI_DATA(PyObject *) PyExc_TypeError;
-PyAPI_DATA(PyObject *) PyExc_UnboundLocalError;
-PyAPI_DATA(PyObject *) PyExc_UnicodeError;
-PyAPI_DATA(PyObject *) PyExc_UnicodeEncodeError;
-PyAPI_DATA(PyObject *) PyExc_UnicodeDecodeError;
-PyAPI_DATA(PyObject *) PyExc_UnicodeTranslateError;
-PyAPI_DATA(PyObject *) PyExc_ValueError;
-PyAPI_DATA(PyObject *) PyExc_ZeroDivisionError;
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_DATA(PyObject *) PyExc_BlockingIOError;
-PyAPI_DATA(PyObject *) PyExc_BrokenPipeError;
-PyAPI_DATA(PyObject *) PyExc_ChildProcessError;
-PyAPI_DATA(PyObject *) PyExc_ConnectionError;
-PyAPI_DATA(PyObject *) PyExc_ConnectionAbortedError;
-PyAPI_DATA(PyObject *) PyExc_ConnectionRefusedError;
-PyAPI_DATA(PyObject *) PyExc_ConnectionResetError;
-PyAPI_DATA(PyObject *) PyExc_FileExistsError;
-PyAPI_DATA(PyObject *) PyExc_FileNotFoundError;
-PyAPI_DATA(PyObject *) PyExc_InterruptedError;
-PyAPI_DATA(PyObject *) PyExc_IsADirectoryError;
-PyAPI_DATA(PyObject *) PyExc_NotADirectoryError;
-PyAPI_DATA(PyObject *) PyExc_PermissionError;
-PyAPI_DATA(PyObject *) PyExc_ProcessLookupError;
-PyAPI_DATA(PyObject *) PyExc_TimeoutError;
-#endif
-
-
-/* Compatibility aliases */
-PyAPI_DATA(PyObject *) PyExc_EnvironmentError;
-PyAPI_DATA(PyObject *) PyExc_IOError;
-#ifdef MS_WINDOWS
-PyAPI_DATA(PyObject *) PyExc_WindowsError;
-#endif
-
-/* Predefined warning categories */
-PyAPI_DATA(PyObject *) PyExc_Warning;
-PyAPI_DATA(PyObject *) PyExc_UserWarning;
-PyAPI_DATA(PyObject *) PyExc_DeprecationWarning;
-PyAPI_DATA(PyObject *) PyExc_PendingDeprecationWarning;
-PyAPI_DATA(PyObject *) PyExc_SyntaxWarning;
-PyAPI_DATA(PyObject *) PyExc_RuntimeWarning;
-PyAPI_DATA(PyObject *) PyExc_FutureWarning;
-PyAPI_DATA(PyObject *) PyExc_ImportWarning;
-PyAPI_DATA(PyObject *) PyExc_UnicodeWarning;
-PyAPI_DATA(PyObject *) PyExc_BytesWarning;
-PyAPI_DATA(PyObject *) PyExc_ResourceWarning;
-
-
-/* Convenience functions */
-
-PyAPI_FUNC(int) PyErr_BadArgument(void);
-PyAPI_FUNC(PyObject *) PyErr_NoMemory(void);
-PyAPI_FUNC(PyObject *) PyErr_SetFromErrno(PyObject *);
-PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilenameObject(
- PyObject *, PyObject *);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03040000
-PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilenameObjects(
- PyObject *, PyObject *, PyObject *);
-#endif
-PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilename(
- PyObject *exc,
- const char *filename /* decoded from the filesystem encoding */
- );
-#if defined(MS_WINDOWS) && !defined(Py_LIMITED_API)
-PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithUnicodeFilename(
- PyObject *, const Py_UNICODE *) Py_DEPRECATED(3.3);
-#endif /* MS_WINDOWS */
-
-PyAPI_FUNC(PyObject *) PyErr_Format(
- PyObject *exception,
- const char *format, /* ASCII-encoded string */
- ...
- );
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-PyAPI_FUNC(PyObject *) PyErr_FormatV(
- PyObject *exception,
- const char *format,
- va_list vargs);
-#endif
-
-#ifndef Py_LIMITED_API
-/* Like PyErr_Format(), but saves current exception as __context__ and
- __cause__.
- */
-PyAPI_FUNC(PyObject *) _PyErr_FormatFromCause(
- PyObject *exception,
- const char *format, /* ASCII-encoded string */
- ...
- );
-#endif
-
-#ifdef MS_WINDOWS
-PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErrWithFilename(
- int ierr,
- const char *filename /* decoded from the filesystem encoding */
- );
-#ifndef Py_LIMITED_API
-/* XXX redeclare to use WSTRING */
-PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErrWithUnicodeFilename(
- int, const Py_UNICODE *) Py_DEPRECATED(3.3);
-#endif
-PyAPI_FUNC(PyObject *) PyErr_SetFromWindowsErr(int);
-PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilenameObject(
- PyObject *,int, PyObject *);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03040000
-PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilenameObjects(
- PyObject *,int, PyObject *, PyObject *);
-#endif
-PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithFilename(
- PyObject *exc,
- int ierr,
- const char *filename /* decoded from the filesystem encoding */
- );
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErrWithUnicodeFilename(
- PyObject *,int, const Py_UNICODE *) Py_DEPRECATED(3.3);
-#endif
-PyAPI_FUNC(PyObject *) PyErr_SetExcFromWindowsErr(PyObject *, int);
-#endif /* MS_WINDOWS */
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000
-PyAPI_FUNC(PyObject *) PyErr_SetImportErrorSubclass(PyObject *, PyObject *,
- PyObject *, PyObject *);
-#endif
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(PyObject *) PyErr_SetImportError(PyObject *, PyObject *,
- PyObject *);
-#endif
-
-/* Export the old function so that the existing API remains available: */
-PyAPI_FUNC(void) PyErr_BadInternalCall(void);
-PyAPI_FUNC(void) _PyErr_BadInternalCall(const char *filename, int lineno);
-/* Mask the old API with a call to the new API for code compiled under
- Python 2.0: */
-#define PyErr_BadInternalCall() _PyErr_BadInternalCall(__FILE__, __LINE__)
-
-/* Function to create a new exception */
-PyAPI_FUNC(PyObject *) PyErr_NewException(
- const char *name, PyObject *base, PyObject *dict);
-PyAPI_FUNC(PyObject *) PyErr_NewExceptionWithDoc(
- const char *name, const char *doc, PyObject *base, PyObject *dict);
-PyAPI_FUNC(void) PyErr_WriteUnraisable(PyObject *);
-
-/* In exceptions.c */
-#ifndef Py_LIMITED_API
-/* Helper that attempts to replace the current exception with one of the
- * same type but with a prefix added to the exception text. The resulting
- * exception description looks like:
- *
- * prefix (exc_type: original_exc_str)
- *
- * Only some exceptions can be safely replaced. If the function determines
- * it isn't safe to perform the replacement, it will leave the original
- * unmodified exception in place.
- *
- * Returns a borrowed reference to the new exception (if any), NULL if the
- * existing exception was left in place.
- */
-PyAPI_FUNC(PyObject *) _PyErr_TrySetFromCause(
- const char *prefix_format, /* ASCII-encoded string */
- ...
- );
-#endif
-
-
-/* In signalmodule.c */
-PyAPI_FUNC(int) PyErr_CheckSignals(void);
-PyAPI_FUNC(void) PyErr_SetInterrupt(void);
-
-/* In signalmodule.c */
-#ifndef Py_LIMITED_API
-int PySignal_SetWakeupFd(int fd);
-#endif
-
-/* Support for adding program text to SyntaxErrors */
-PyAPI_FUNC(void) PyErr_SyntaxLocation(
- const char *filename, /* decoded from the filesystem encoding */
- int lineno);
-PyAPI_FUNC(void) PyErr_SyntaxLocationEx(
- const char *filename, /* decoded from the filesystem encoding */
- int lineno,
- int col_offset);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) PyErr_SyntaxLocationObject(
- PyObject *filename,
- int lineno,
- int col_offset);
-#endif
-PyAPI_FUNC(PyObject *) PyErr_ProgramText(
- const char *filename, /* decoded from the filesystem encoding */
- int lineno);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) PyErr_ProgramTextObject(
- PyObject *filename,
- int lineno);
-#endif
-
-/* The following functions are used to create and modify unicode
- exceptions from C */
-
-/* create a UnicodeDecodeError object */
-PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_Create(
- const char *encoding, /* UTF-8 encoded string */
- const char *object,
- Py_ssize_t length,
- Py_ssize_t start,
- Py_ssize_t end,
- const char *reason /* UTF-8 encoded string */
- );
-
-/* create a UnicodeEncodeError object */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_Create(
- const char *encoding, /* UTF-8 encoded string */
- const Py_UNICODE *object,
- Py_ssize_t length,
- Py_ssize_t start,
- Py_ssize_t end,
- const char *reason /* UTF-8 encoded string */
- ) Py_DEPRECATED(3.3);
-#endif
-
-/* create a UnicodeTranslateError object */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_Create(
- const Py_UNICODE *object,
- Py_ssize_t length,
- Py_ssize_t start,
- Py_ssize_t end,
- const char *reason /* UTF-8 encoded string */
- ) Py_DEPRECATED(3.3);
-PyAPI_FUNC(PyObject *) _PyUnicodeTranslateError_Create(
- PyObject *object,
- Py_ssize_t start,
- Py_ssize_t end,
- const char *reason /* UTF-8 encoded string */
- );
-#endif
-
-/* get the encoding attribute */
-PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetEncoding(PyObject *);
-PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetEncoding(PyObject *);
-
-/* get the object attribute */
-PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetObject(PyObject *);
-PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetObject(PyObject *);
-PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_GetObject(PyObject *);
-
-/* get the value of the start attribute (the int * may not be NULL)
- return 0 on success, -1 on failure */
-PyAPI_FUNC(int) PyUnicodeEncodeError_GetStart(PyObject *, Py_ssize_t *);
-PyAPI_FUNC(int) PyUnicodeDecodeError_GetStart(PyObject *, Py_ssize_t *);
-PyAPI_FUNC(int) PyUnicodeTranslateError_GetStart(PyObject *, Py_ssize_t *);
-
-/* assign a new value to the start attribute
- return 0 on success, -1 on failure */
-PyAPI_FUNC(int) PyUnicodeEncodeError_SetStart(PyObject *, Py_ssize_t);
-PyAPI_FUNC(int) PyUnicodeDecodeError_SetStart(PyObject *, Py_ssize_t);
-PyAPI_FUNC(int) PyUnicodeTranslateError_SetStart(PyObject *, Py_ssize_t);
-
-/* get the value of the end attribute (the int *may not be NULL)
- return 0 on success, -1 on failure */
-PyAPI_FUNC(int) PyUnicodeEncodeError_GetEnd(PyObject *, Py_ssize_t *);
-PyAPI_FUNC(int) PyUnicodeDecodeError_GetEnd(PyObject *, Py_ssize_t *);
-PyAPI_FUNC(int) PyUnicodeTranslateError_GetEnd(PyObject *, Py_ssize_t *);
-
-/* assign a new value to the end attribute
- return 0 on success, -1 on failure */
-PyAPI_FUNC(int) PyUnicodeEncodeError_SetEnd(PyObject *, Py_ssize_t);
-PyAPI_FUNC(int) PyUnicodeDecodeError_SetEnd(PyObject *, Py_ssize_t);
-PyAPI_FUNC(int) PyUnicodeTranslateError_SetEnd(PyObject *, Py_ssize_t);
-
-/* get the value of the reason attribute */
-PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetReason(PyObject *);
-PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetReason(PyObject *);
-PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_GetReason(PyObject *);
-
-/* assign a new value to the reason attribute
- return 0 on success, -1 on failure */
-PyAPI_FUNC(int) PyUnicodeEncodeError_SetReason(
- PyObject *exc,
- const char *reason /* UTF-8 encoded string */
- );
-PyAPI_FUNC(int) PyUnicodeDecodeError_SetReason(
- PyObject *exc,
- const char *reason /* UTF-8 encoded string */
- );
-PyAPI_FUNC(int) PyUnicodeTranslateError_SetReason(
- PyObject *exc,
- const char *reason /* UTF-8 encoded string */
- );
-
-/* These APIs aren't really part of the error implementation, but
- often needed to format error messages; the native C lib APIs are
- not available on all platforms, which is why we provide emulations
- for those platforms in Python/mysnprintf.c,
- WARNING: The return value of snprintf varies across platforms; do
- not rely on any particular behavior; eventually the C99 defn may
- be reliable.
-*/
-#if defined(MS_WIN32) && !defined(HAVE_SNPRINTF)
-# define HAVE_SNPRINTF
-# define snprintf _snprintf
-# define vsnprintf _vsnprintf
-#endif
-
-#include
-PyAPI_FUNC(int) PyOS_snprintf(char *str, size_t size, const char *format, ...)
- Py_GCC_ATTRIBUTE((format(printf, 3, 4)));
-PyAPI_FUNC(int) PyOS_vsnprintf(char *str, size_t size, const char *format, va_list va)
- Py_GCC_ATTRIBUTE((format(printf, 3, 0)));
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_ERRORS_H */
diff --git a/EasyTrans/Include/pyexpat.h b/EasyTrans/Include/pyexpat.h
deleted file mode 100644
index 07020b5d..00000000
--- a/EasyTrans/Include/pyexpat.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Stuff to export relevant 'expat' entry points from pyexpat to other
- * parser modules, such as cElementTree. */
-
-/* note: you must import expat.h before importing this module! */
-
-#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1"
-#define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI"
-
-struct PyExpat_CAPI
-{
- char* magic; /* set to PyExpat_CAPI_MAGIC */
- int size; /* set to sizeof(struct PyExpat_CAPI) */
- int MAJOR_VERSION;
- int MINOR_VERSION;
- int MICRO_VERSION;
- /* pointers to selected expat functions. add new functions at
- the end, if needed */
- const XML_LChar * (*ErrorString)(enum XML_Error code);
- enum XML_Error (*GetErrorCode)(XML_Parser parser);
- XML_Size (*GetErrorColumnNumber)(XML_Parser parser);
- XML_Size (*GetErrorLineNumber)(XML_Parser parser);
- enum XML_Status (*Parse)(
- XML_Parser parser, const char *s, int len, int isFinal);
- XML_Parser (*ParserCreate_MM)(
- const XML_Char *encoding, const XML_Memory_Handling_Suite *memsuite,
- const XML_Char *namespaceSeparator);
- void (*ParserFree)(XML_Parser parser);
- void (*SetCharacterDataHandler)(
- XML_Parser parser, XML_CharacterDataHandler handler);
- void (*SetCommentHandler)(
- XML_Parser parser, XML_CommentHandler handler);
- void (*SetDefaultHandlerExpand)(
- XML_Parser parser, XML_DefaultHandler handler);
- void (*SetElementHandler)(
- XML_Parser parser, XML_StartElementHandler start,
- XML_EndElementHandler end);
- void (*SetNamespaceDeclHandler)(
- XML_Parser parser, XML_StartNamespaceDeclHandler start,
- XML_EndNamespaceDeclHandler end);
- void (*SetProcessingInstructionHandler)(
- XML_Parser parser, XML_ProcessingInstructionHandler handler);
- void (*SetUnknownEncodingHandler)(
- XML_Parser parser, XML_UnknownEncodingHandler handler,
- void *encodingHandlerData);
- void (*SetUserData)(XML_Parser parser, void *userData);
- void (*SetStartDoctypeDeclHandler)(XML_Parser parser,
- XML_StartDoctypeDeclHandler start);
- enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding);
- int (*DefaultUnknownEncodingHandler)(
- void *encodingHandlerData, const XML_Char *name, XML_Encoding *info);
- /* might be none for expat < 2.1.0 */
- int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt);
- /* always add new stuff to the end! */
-};
-
diff --git a/EasyTrans/Include/pyfpe.h b/EasyTrans/Include/pyfpe.h
deleted file mode 100644
index 5a99e397..00000000
--- a/EasyTrans/Include/pyfpe.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef Py_PYFPE_H
-#define Py_PYFPE_H
-
-/* These macros used to do something when Python was built with --with-fpectl,
- * but support for that was dropped in 3.7. We continue to define them though,
- * to avoid breaking API users.
- */
-
-#define PyFPE_START_PROTECT(err_string, leave_stmt)
-#define PyFPE_END_PROTECT(v)
-
-#endif /* !Py_PYFPE_H */
diff --git a/EasyTrans/Include/pyhash.h b/EasyTrans/Include/pyhash.h
deleted file mode 100644
index 9cfd071e..00000000
--- a/EasyTrans/Include/pyhash.h
+++ /dev/null
@@ -1,145 +0,0 @@
-#ifndef Py_HASH_H
-
-#define Py_HASH_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Helpers for hash functions */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(Py_hash_t) _Py_HashDouble(double);
-PyAPI_FUNC(Py_hash_t) _Py_HashPointer(void*);
-PyAPI_FUNC(Py_hash_t) _Py_HashBytes(const void*, Py_ssize_t);
-#endif
-
-/* Prime multiplier used in string and various other hashes. */
-#define _PyHASH_MULTIPLIER 1000003UL /* 0xf4243 */
-
-/* Parameters used for the numeric hash implementation. See notes for
- _Py_HashDouble in Python/pyhash.c. Numeric hashes are based on
- reduction modulo the prime 2**_PyHASH_BITS - 1. */
-
-#if SIZEOF_VOID_P >= 8
-# define _PyHASH_BITS 61
-#else
-# define _PyHASH_BITS 31
-#endif
-
-#define _PyHASH_MODULUS (((size_t)1 << _PyHASH_BITS) - 1)
-#define _PyHASH_INF 314159
-#define _PyHASH_NAN 0
-#define _PyHASH_IMAG _PyHASH_MULTIPLIER
-
-
-/* hash secret
- *
- * memory layout on 64 bit systems
- * cccccccc cccccccc cccccccc uc -- unsigned char[24]
- * pppppppp ssssssss ........ fnv -- two Py_hash_t
- * k0k0k0k0 k1k1k1k1 ........ siphash -- two uint64_t
- * ........ ........ ssssssss djbx33a -- 16 bytes padding + one Py_hash_t
- * ........ ........ eeeeeeee pyexpat XML hash salt
- *
- * memory layout on 32 bit systems
- * cccccccc cccccccc cccccccc uc
- * ppppssss ........ ........ fnv -- two Py_hash_t
- * k0k0k0k0 k1k1k1k1 ........ siphash -- two uint64_t (*)
- * ........ ........ ssss.... djbx33a -- 16 bytes padding + one Py_hash_t
- * ........ ........ eeee.... pyexpat XML hash salt
- *
- * (*) The siphash member may not be available on 32 bit platforms without
- * an unsigned int64 data type.
- */
-#ifndef Py_LIMITED_API
-typedef union {
- /* ensure 24 bytes */
- unsigned char uc[24];
- /* two Py_hash_t for FNV */
- struct {
- Py_hash_t prefix;
- Py_hash_t suffix;
- } fnv;
- /* two uint64 for SipHash24 */
- struct {
- uint64_t k0;
- uint64_t k1;
- } siphash;
- /* a different (!) Py_hash_t for small string optimization */
- struct {
- unsigned char padding[16];
- Py_hash_t suffix;
- } djbx33a;
- struct {
- unsigned char padding[16];
- Py_hash_t hashsalt;
- } expat;
-} _Py_HashSecret_t;
-PyAPI_DATA(_Py_HashSecret_t) _Py_HashSecret;
-#endif
-
-#ifdef Py_DEBUG
-PyAPI_DATA(int) _Py_HashSecret_Initialized;
-#endif
-
-
-/* hash function definition */
-#ifndef Py_LIMITED_API
-typedef struct {
- Py_hash_t (*const hash)(const void *, Py_ssize_t);
- const char *name;
- const int hash_bits;
- const int seed_bits;
-} PyHash_FuncDef;
-
-PyAPI_FUNC(PyHash_FuncDef*) PyHash_GetFuncDef(void);
-#endif
-
-
-/* cutoff for small string DJBX33A optimization in range [1, cutoff).
- *
- * About 50% of the strings in a typical Python application are smaller than
- * 6 to 7 chars. However DJBX33A is vulnerable to hash collision attacks.
- * NEVER use DJBX33A for long strings!
- *
- * A Py_HASH_CUTOFF of 0 disables small string optimization. 32 bit platforms
- * should use a smaller cutoff because it is easier to create colliding
- * strings. A cutoff of 7 on 64bit platforms and 5 on 32bit platforms should
- * provide a decent safety margin.
- */
-#ifndef Py_HASH_CUTOFF
-# define Py_HASH_CUTOFF 0
-#elif (Py_HASH_CUTOFF > 7 || Py_HASH_CUTOFF < 0)
-# error Py_HASH_CUTOFF must in range 0...7.
-#endif /* Py_HASH_CUTOFF */
-
-
-/* hash algorithm selection
- *
- * The values for Py_HASH_SIPHASH24 and Py_HASH_FNV are hard-coded in the
- * configure script.
- *
- * - FNV is available on all platforms and architectures.
- * - SIPHASH24 only works on plaforms that don't require aligned memory for integers.
- * - With EXTERNAL embedders can provide an alternative implementation with::
- *
- * PyHash_FuncDef PyHash_Func = {...};
- *
- * XXX: Figure out __declspec() for extern PyHash_FuncDef.
- */
-#define Py_HASH_EXTERNAL 0
-#define Py_HASH_SIPHASH24 1
-#define Py_HASH_FNV 2
-
-#ifndef Py_HASH_ALGORITHM
-# ifndef HAVE_ALIGNED_REQUIRED
-# define Py_HASH_ALGORITHM Py_HASH_SIPHASH24
-# else
-# define Py_HASH_ALGORITHM Py_HASH_FNV
-# endif /* uint64_t && uint32_t && aligned */
-#endif /* Py_HASH_ALGORITHM */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !Py_HASH_H */
diff --git a/EasyTrans/Include/pylifecycle.h b/EasyTrans/Include/pylifecycle.h
deleted file mode 100644
index 5d9f049d..00000000
--- a/EasyTrans/Include/pylifecycle.h
+++ /dev/null
@@ -1,238 +0,0 @@
-
-/* Interfaces to configure, query, create & destroy the Python runtime */
-
-#ifndef Py_PYLIFECYCLE_H
-#define Py_PYLIFECYCLE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-typedef struct {
- const char *prefix;
- const char *msg;
- int user_err;
-} _PyInitError;
-
-/* Almost all errors causing Python initialization to fail */
-#ifdef _MSC_VER
- /* Visual Studio 2015 doesn't implement C99 __func__ in C */
-# define _Py_INIT_GET_FUNC() __FUNCTION__
-#else
-# define _Py_INIT_GET_FUNC() __func__
-#endif
-
-#define _Py_INIT_OK() \
- (_PyInitError){.prefix = NULL, .msg = NULL, .user_err = 0}
-#define _Py_INIT_ERR(MSG) \
- (_PyInitError){.prefix = _Py_INIT_GET_FUNC(), .msg = (MSG), .user_err = 0}
-/* Error that can be fixed by the user like invalid input parameter.
- Don't abort() the process on such error. */
-#define _Py_INIT_USER_ERR(MSG) \
- (_PyInitError){.prefix = _Py_INIT_GET_FUNC(), .msg = (MSG), .user_err = 1}
-#define _Py_INIT_NO_MEMORY() _Py_INIT_USER_ERR("memory allocation failed")
-#define _Py_INIT_FAILED(err) \
- (err.msg != NULL)
-
-#endif
-
-
-PyAPI_FUNC(void) Py_SetProgramName(const wchar_t *);
-PyAPI_FUNC(wchar_t *) Py_GetProgramName(void);
-
-PyAPI_FUNC(void) Py_SetPythonHome(const wchar_t *);
-PyAPI_FUNC(wchar_t *) Py_GetPythonHome(void);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _Py_SetProgramFullPath(const wchar_t *);
-
-/* Only used by applications that embed the interpreter and need to
- * override the standard encoding determination mechanism
- */
-PyAPI_FUNC(int) Py_SetStandardStreamEncoding(const char *encoding,
- const char *errors);
-
-/* PEP 432 Multi-phase initialization API (Private while provisional!) */
-PyAPI_FUNC(_PyInitError) _Py_InitializeCore(
- PyInterpreterState **interp_p,
- const _PyCoreConfig *config);
-PyAPI_FUNC(int) _Py_IsCoreInitialized(void);
-PyAPI_FUNC(_PyInitError) _Py_InitializeFromConfig(
- const _PyCoreConfig *config);
-#ifdef Py_BUILD_CORE
-PyAPI_FUNC(void) _Py_Initialize_ReadEnvVarsNoAlloc(void);
-#endif
-
-PyAPI_FUNC(PyObject *) _Py_GetGlobalVariablesAsDict(void);
-
-PyAPI_FUNC(_PyInitError) _PyCoreConfig_Read(_PyCoreConfig *);
-PyAPI_FUNC(void) _PyCoreConfig_Clear(_PyCoreConfig *);
-PyAPI_FUNC(int) _PyCoreConfig_Copy(
- _PyCoreConfig *config,
- const _PyCoreConfig *config2);
-PyAPI_FUNC(PyObject *) _PyCoreConfig_AsDict(const _PyCoreConfig *config);
-PyAPI_FUNC(void) _PyCoreConfig_SetGlobalConfig(
- const _PyCoreConfig *config);
-
-
-PyAPI_FUNC(_PyInitError) _PyMainInterpreterConfig_Read(
- _PyMainInterpreterConfig *config,
- const _PyCoreConfig *core_config);
-PyAPI_FUNC(void) _PyMainInterpreterConfig_Clear(_PyMainInterpreterConfig *);
-PyAPI_FUNC(int) _PyMainInterpreterConfig_Copy(
- _PyMainInterpreterConfig *config,
- const _PyMainInterpreterConfig *config2);
-/* Used by _testcapi.get_main_config() */
-PyAPI_FUNC(PyObject*) _PyMainInterpreterConfig_AsDict(
- const _PyMainInterpreterConfig *config);
-
-PyAPI_FUNC(_PyInitError) _Py_InitializeMainInterpreter(
- PyInterpreterState *interp,
- const _PyMainInterpreterConfig *config);
-#endif /* !defined(Py_LIMITED_API) */
-
-
-/* Initialization and finalization */
-PyAPI_FUNC(void) Py_Initialize(void);
-PyAPI_FUNC(void) Py_InitializeEx(int);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _Py_FatalInitError(_PyInitError err) _Py_NO_RETURN;
-#endif
-PyAPI_FUNC(void) Py_Finalize(void);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000
-PyAPI_FUNC(int) Py_FinalizeEx(void);
-#endif
-PyAPI_FUNC(int) Py_IsInitialized(void);
-
-/* Subinterpreter support */
-PyAPI_FUNC(PyThreadState *) Py_NewInterpreter(void);
-PyAPI_FUNC(void) Py_EndInterpreter(PyThreadState *);
-
-
-/* Py_PyAtExit is for the atexit module, Py_AtExit is for low-level
- * exit functions.
- */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(PyObject *), PyObject *);
-#endif
-PyAPI_FUNC(int) Py_AtExit(void (*func)(void));
-
-PyAPI_FUNC(void) Py_Exit(int) _Py_NO_RETURN;
-
-/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _Py_RestoreSignals(void);
-
-PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *);
-#endif
-
-/* Bootstrap __main__ (defined in Modules/main.c) */
-PyAPI_FUNC(int) Py_Main(int argc, wchar_t **argv);
-#ifdef Py_BUILD_CORE
-PyAPI_FUNC(int) _Py_UnixMain(int argc, char **argv);
-#endif
-
-/* In getpath.c */
-PyAPI_FUNC(wchar_t *) Py_GetProgramFullPath(void);
-PyAPI_FUNC(wchar_t *) Py_GetPrefix(void);
-PyAPI_FUNC(wchar_t *) Py_GetExecPrefix(void);
-PyAPI_FUNC(wchar_t *) Py_GetPath(void);
-#ifdef Py_BUILD_CORE
-PyAPI_FUNC(_PyInitError) _PyPathConfig_Init(const _PyCoreConfig *core_config);
-PyAPI_FUNC(int) _PyPathConfig_ComputeArgv0(
- int argc, wchar_t **argv,
- PyObject **argv0_p);
-PyAPI_FUNC(int) _Py_FindEnvConfigValue(
- FILE *env_file,
- const wchar_t *key,
- wchar_t *value,
- size_t value_size);
-#endif
-PyAPI_FUNC(void) Py_SetPath(const wchar_t *);
-#ifdef MS_WINDOWS
-int _Py_CheckPython3(void);
-#endif
-
-/* In their own files */
-PyAPI_FUNC(const char *) Py_GetVersion(void);
-PyAPI_FUNC(const char *) Py_GetPlatform(void);
-PyAPI_FUNC(const char *) Py_GetCopyright(void);
-PyAPI_FUNC(const char *) Py_GetCompiler(void);
-PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(const char *) _Py_gitidentifier(void);
-PyAPI_FUNC(const char *) _Py_gitversion(void);
-#endif
-
-/* Internal -- various one-time initializations */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyBuiltin_Init(void);
-PyAPI_FUNC(_PyInitError) _PySys_BeginInit(PyObject **sysmod);
-PyAPI_FUNC(int) _PySys_EndInit(PyObject *sysdict, _PyMainInterpreterConfig *config);
-PyAPI_FUNC(_PyInitError) _PyImport_Init(PyInterpreterState *interp);
-PyAPI_FUNC(void) _PyExc_Init(PyObject * bltinmod);
-PyAPI_FUNC(_PyInitError) _PyImportHooks_Init(void);
-PyAPI_FUNC(int) _PyFrame_Init(void);
-PyAPI_FUNC(int) _PyFloat_Init(void);
-PyAPI_FUNC(int) PyByteArray_Init(void);
-PyAPI_FUNC(_PyInitError) _Py_HashRandomization_Init(const _PyCoreConfig *);
-#endif
-#ifdef Py_BUILD_CORE
-PyAPI_FUNC(int) _Py_ReadHashSeed(
- const char *seed_text,
- int *use_hash_seed,
- unsigned long *hash_seed);
-#endif
-
-/* Various internal finalizers */
-
-#ifdef Py_BUILD_CORE
-PyAPI_FUNC(void) _PyExc_Fini(void);
-PyAPI_FUNC(void) _PyImport_Fini(void);
-PyAPI_FUNC(void) _PyImport_Fini2(void);
-PyAPI_FUNC(void) _PyGC_DumpShutdownStats(void);
-PyAPI_FUNC(void) _PyGC_Fini(void);
-PyAPI_FUNC(void) _PyType_Fini(void);
-PyAPI_FUNC(void) _Py_HashRandomization_Fini(void);
-#endif /* Py_BUILD_CORE */
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) PyMethod_Fini(void);
-PyAPI_FUNC(void) PyFrame_Fini(void);
-PyAPI_FUNC(void) PyCFunction_Fini(void);
-PyAPI_FUNC(void) PyDict_Fini(void);
-PyAPI_FUNC(void) PyTuple_Fini(void);
-PyAPI_FUNC(void) PyList_Fini(void);
-PyAPI_FUNC(void) PySet_Fini(void);
-PyAPI_FUNC(void) PyBytes_Fini(void);
-PyAPI_FUNC(void) PyByteArray_Fini(void);
-PyAPI_FUNC(void) PyFloat_Fini(void);
-PyAPI_FUNC(void) PyOS_FiniInterrupts(void);
-PyAPI_FUNC(void) PySlice_Fini(void);
-PyAPI_FUNC(void) PyAsyncGen_Fini(void);
-
-PyAPI_FUNC(int) _Py_IsFinalizing(void);
-#endif /* !Py_LIMITED_API */
-
-/* Signals */
-typedef void (*PyOS_sighandler_t)(int);
-PyAPI_FUNC(PyOS_sighandler_t) PyOS_getsig(int);
-PyAPI_FUNC(PyOS_sighandler_t) PyOS_setsig(int, PyOS_sighandler_t);
-
-#ifndef Py_LIMITED_API
-/* Random */
-PyAPI_FUNC(int) _PyOS_URandom(void *buffer, Py_ssize_t size);
-PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
-#endif /* !Py_LIMITED_API */
-
-/* Legacy locale support */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _Py_CoerceLegacyLocale(const _PyCoreConfig *config);
-PyAPI_FUNC(int) _Py_LegacyLocaleDetected(void);
-PyAPI_FUNC(char *) _Py_SetLocaleFromEnv(int category);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PYLIFECYCLE_H */
diff --git a/EasyTrans/Include/pymacconfig.h b/EasyTrans/Include/pymacconfig.h
deleted file mode 100644
index 9dde11bd..00000000
--- a/EasyTrans/Include/pymacconfig.h
+++ /dev/null
@@ -1,102 +0,0 @@
-#ifndef PYMACCONFIG_H
-#define PYMACCONFIG_H
- /*
- * This file moves some of the autoconf magic to compile-time
- * when building on MacOSX. This is needed for building 4-way
- * universal binaries and for 64-bit universal binaries because
- * the values redefined below aren't configure-time constant but
- * only compile-time constant in these scenarios.
- */
-
-#if defined(__APPLE__)
-
-# undef SIZEOF_LONG
-# undef SIZEOF_PTHREAD_T
-# undef SIZEOF_SIZE_T
-# undef SIZEOF_TIME_T
-# undef SIZEOF_VOID_P
-# undef SIZEOF__BOOL
-# undef SIZEOF_UINTPTR_T
-# undef SIZEOF_PTHREAD_T
-# undef WORDS_BIGENDIAN
-# undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754
-# undef DOUBLE_IS_BIG_ENDIAN_IEEE754
-# undef DOUBLE_IS_LITTLE_ENDIAN_IEEE754
-# undef HAVE_GCC_ASM_FOR_X87
-
-# undef VA_LIST_IS_ARRAY
-# if defined(__LP64__) && defined(__x86_64__)
-# define VA_LIST_IS_ARRAY 1
-# endif
-
-# undef HAVE_LARGEFILE_SUPPORT
-# ifndef __LP64__
-# define HAVE_LARGEFILE_SUPPORT 1
-# endif
-
-# undef SIZEOF_LONG
-# ifdef __LP64__
-# define SIZEOF__BOOL 1
-# define SIZEOF__BOOL 1
-# define SIZEOF_LONG 8
-# define SIZEOF_PTHREAD_T 8
-# define SIZEOF_SIZE_T 8
-# define SIZEOF_TIME_T 8
-# define SIZEOF_VOID_P 8
-# define SIZEOF_UINTPTR_T 8
-# define SIZEOF_PTHREAD_T 8
-# else
-# ifdef __ppc__
-# define SIZEOF__BOOL 4
-# else
-# define SIZEOF__BOOL 1
-# endif
-# define SIZEOF_LONG 4
-# define SIZEOF_PTHREAD_T 4
-# define SIZEOF_SIZE_T 4
-# define SIZEOF_TIME_T 4
-# define SIZEOF_VOID_P 4
-# define SIZEOF_UINTPTR_T 4
-# define SIZEOF_PTHREAD_T 4
-# endif
-
-# if defined(__LP64__)
- /* MacOSX 10.4 (the first release to support 64-bit code
- * at all) only supports 64-bit in the UNIX layer.
- * Therefore suppress the toolbox-glue in 64-bit mode.
- */
-
- /* In 64-bit mode setpgrp always has no arguments, in 32-bit
- * mode that depends on the compilation environment
- */
-# undef SETPGRP_HAVE_ARG
-
-# endif
-
-#ifdef __BIG_ENDIAN__
-#define WORDS_BIGENDIAN 1
-#define DOUBLE_IS_BIG_ENDIAN_IEEE754
-#else
-#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754
-#endif /* __BIG_ENDIAN */
-
-#ifdef __i386__
-# define HAVE_GCC_ASM_FOR_X87
-#endif
-
- /*
- * The definition in pyconfig.h is only valid on the OS release
- * where configure ran on and not necessarily for all systems where
- * the executable can be used on.
- *
- * Specifically: OSX 10.4 has limited supported for '%zd', while
- * 10.5 has full support for '%zd'. A binary built on 10.5 won't
- * work properly on 10.4 unless we suppress the definition
- * of PY_FORMAT_SIZE_T
- */
-#undef PY_FORMAT_SIZE_T
-
-
-#endif /* defined(_APPLE__) */
-
-#endif /* PYMACCONFIG_H */
diff --git a/EasyTrans/Include/pymacro.h b/EasyTrans/Include/pymacro.h
deleted file mode 100644
index 3f6ddbe9..00000000
--- a/EasyTrans/Include/pymacro.h
+++ /dev/null
@@ -1,100 +0,0 @@
-#ifndef Py_PYMACRO_H
-#define Py_PYMACRO_H
-
-/* Minimum value between x and y */
-#define Py_MIN(x, y) (((x) > (y)) ? (y) : (x))
-
-/* Maximum value between x and y */
-#define Py_MAX(x, y) (((x) > (y)) ? (x) : (y))
-
-/* Absolute value of the number x */
-#define Py_ABS(x) ((x) < 0 ? -(x) : (x))
-
-#define _Py_XSTRINGIFY(x) #x
-
-/* Convert the argument to a string. For example, Py_STRINGIFY(123) is replaced
- with "123" by the preprocessor. Defines are also replaced by their value.
- For example Py_STRINGIFY(__LINE__) is replaced by the line number, not
- by "__LINE__". */
-#define Py_STRINGIFY(x) _Py_XSTRINGIFY(x)
-
-/* Get the size of a structure member in bytes */
-#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
-
-/* Argument must be a char or an int in [-128, 127] or [0, 255]. */
-#define Py_CHARMASK(c) ((unsigned char)((c) & 0xff))
-
-/* Assert a build-time dependency, as an expression.
-
- Your compile will fail if the condition isn't true, or can't be evaluated
- by the compiler. This can be used in an expression: its value is 0.
-
- Example:
-
- #define foo_to_char(foo) \
- ((char *)(foo) \
- + Py_BUILD_ASSERT_EXPR(offsetof(struct foo, string) == 0))
-
- Written by Rusty Russell, public domain, http://ccodearchive.net/ */
-#define Py_BUILD_ASSERT_EXPR(cond) \
- (sizeof(char [1 - 2*!(cond)]) - 1)
-
-#define Py_BUILD_ASSERT(cond) do { \
- (void)Py_BUILD_ASSERT_EXPR(cond); \
- } while(0)
-
-/* Get the number of elements in a visible array
-
- This does not work on pointers, or arrays declared as [], or function
- parameters. With correct compiler support, such usage will cause a build
- error (see Py_BUILD_ASSERT_EXPR).
-
- Written by Rusty Russell, public domain, http://ccodearchive.net/
-
- Requires at GCC 3.1+ */
-#if (defined(__GNUC__) && !defined(__STRICT_ANSI__) && \
- (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ >= 4)))
-/* Two gcc extensions.
- &a[0] degrades to a pointer: a different type from an array */
-#define Py_ARRAY_LENGTH(array) \
- (sizeof(array) / sizeof((array)[0]) \
- + Py_BUILD_ASSERT_EXPR(!__builtin_types_compatible_p(typeof(array), \
- typeof(&(array)[0]))))
-#else
-#define Py_ARRAY_LENGTH(array) \
- (sizeof(array) / sizeof((array)[0]))
-#endif
-
-
-/* Define macros for inline documentation. */
-#define PyDoc_VAR(name) static char name[]
-#define PyDoc_STRVAR(name,str) PyDoc_VAR(name) = PyDoc_STR(str)
-#ifdef WITH_DOC_STRINGS
-#define PyDoc_STR(str) str
-#else
-#define PyDoc_STR(str) ""
-#endif
-
-/* Below "a" is a power of 2. */
-/* Round down size "n" to be a multiple of "a". */
-#define _Py_SIZE_ROUND_DOWN(n, a) ((size_t)(n) & ~(size_t)((a) - 1))
-/* Round up size "n" to be a multiple of "a". */
-#define _Py_SIZE_ROUND_UP(n, a) (((size_t)(n) + \
- (size_t)((a) - 1)) & ~(size_t)((a) - 1))
-/* Round pointer "p" down to the closest "a"-aligned address <= "p". */
-#define _Py_ALIGN_DOWN(p, a) ((void *)((uintptr_t)(p) & ~(uintptr_t)((a) - 1)))
-/* Round pointer "p" up to the closest "a"-aligned address >= "p". */
-#define _Py_ALIGN_UP(p, a) ((void *)(((uintptr_t)(p) + \
- (uintptr_t)((a) - 1)) & ~(uintptr_t)((a) - 1)))
-/* Check if pointer "p" is aligned to "a"-bytes boundary. */
-#define _Py_IS_ALIGNED(p, a) (!((uintptr_t)(p) & (uintptr_t)((a) - 1)))
-
-#ifdef __GNUC__
-#define Py_UNUSED(name) _unused_ ## name __attribute__((unused))
-#else
-#define Py_UNUSED(name) _unused_ ## name
-#endif
-
-#define Py_UNREACHABLE() abort()
-
-#endif /* Py_PYMACRO_H */
diff --git a/EasyTrans/Include/pymath.h b/EasyTrans/Include/pymath.h
deleted file mode 100644
index 6cf69f98..00000000
--- a/EasyTrans/Include/pymath.h
+++ /dev/null
@@ -1,230 +0,0 @@
-#ifndef Py_PYMATH_H
-#define Py_PYMATH_H
-
-#include "pyconfig.h" /* include for defines */
-
-/**************************************************************************
-Symbols and macros to supply platform-independent interfaces to mathematical
-functions and constants
-**************************************************************************/
-
-/* Python provides implementations for copysign, round and hypot in
- * Python/pymath.c just in case your math library doesn't provide the
- * functions.
- *
- *Note: PC/pyconfig.h defines copysign as _copysign
- */
-#ifndef HAVE_COPYSIGN
-extern double copysign(double, double);
-#endif
-
-#ifndef HAVE_ROUND
-extern double round(double);
-#endif
-
-#ifndef HAVE_HYPOT
-extern double hypot(double, double);
-#endif
-
-/* extra declarations */
-#ifndef _MSC_VER
-#ifndef __STDC__
-extern double fmod (double, double);
-extern double frexp (double, int *);
-extern double ldexp (double, int);
-extern double modf (double, double *);
-extern double pow(double, double);
-#endif /* __STDC__ */
-#endif /* _MSC_VER */
-
-/* High precision definition of pi and e (Euler)
- * The values are taken from libc6's math.h.
- */
-#ifndef Py_MATH_PIl
-#define Py_MATH_PIl 3.1415926535897932384626433832795029L
-#endif
-#ifndef Py_MATH_PI
-#define Py_MATH_PI 3.14159265358979323846
-#endif
-
-#ifndef Py_MATH_El
-#define Py_MATH_El 2.7182818284590452353602874713526625L
-#endif
-
-#ifndef Py_MATH_E
-#define Py_MATH_E 2.7182818284590452354
-#endif
-
-/* Tau (2pi) to 40 digits, taken from tauday.com/tau-digits. */
-#ifndef Py_MATH_TAU
-#define Py_MATH_TAU 6.2831853071795864769252867665590057683943L
-#endif
-
-
-/* On x86, Py_FORCE_DOUBLE forces a floating-point number out of an x87 FPU
- register and into a 64-bit memory location, rounding from extended
- precision to double precision in the process. On other platforms it does
- nothing. */
-
-/* we take double rounding as evidence of x87 usage */
-#ifndef Py_LIMITED_API
-#ifndef Py_FORCE_DOUBLE
-# ifdef X87_DOUBLE_ROUNDING
-PyAPI_FUNC(double) _Py_force_double(double);
-# define Py_FORCE_DOUBLE(X) (_Py_force_double(X))
-# else
-# define Py_FORCE_DOUBLE(X) (X)
-# endif
-#endif
-#endif
-
-#ifndef Py_LIMITED_API
-#ifdef HAVE_GCC_ASM_FOR_X87
-PyAPI_FUNC(unsigned short) _Py_get_387controlword(void);
-PyAPI_FUNC(void) _Py_set_387controlword(unsigned short);
-#endif
-#endif
-
-/* Py_IS_NAN(X)
- * Return 1 if float or double arg is a NaN, else 0.
- * Caution:
- * X is evaluated more than once.
- * This may not work on all platforms. Each platform has *some*
- * way to spell this, though -- override in pyconfig.h if you have
- * a platform where it doesn't work.
- * Note: PC/pyconfig.h defines Py_IS_NAN as _isnan
- */
-#ifndef Py_IS_NAN
-#if defined HAVE_DECL_ISNAN && HAVE_DECL_ISNAN == 1
-#define Py_IS_NAN(X) isnan(X)
-#else
-#define Py_IS_NAN(X) ((X) != (X))
-#endif
-#endif
-
-/* Py_IS_INFINITY(X)
- * Return 1 if float or double arg is an infinity, else 0.
- * Caution:
- * X is evaluated more than once.
- * This implementation may set the underflow flag if |X| is very small;
- * it really can't be implemented correctly (& easily) before C99.
- * Override in pyconfig.h if you have a better spelling on your platform.
- * Py_FORCE_DOUBLE is used to avoid getting false negatives from a
- * non-infinite value v sitting in an 80-bit x87 register such that
- * v becomes infinite when spilled from the register to 64-bit memory.
- * Note: PC/pyconfig.h defines Py_IS_INFINITY as _isinf
- */
-#ifndef Py_IS_INFINITY
-# if defined HAVE_DECL_ISINF && HAVE_DECL_ISINF == 1
-# define Py_IS_INFINITY(X) isinf(X)
-# else
-# define Py_IS_INFINITY(X) ((X) && \
- (Py_FORCE_DOUBLE(X)*0.5 == Py_FORCE_DOUBLE(X)))
-# endif
-#endif
-
-/* Py_IS_FINITE(X)
- * Return 1 if float or double arg is neither infinite nor NAN, else 0.
- * Some compilers (e.g. VisualStudio) have intrisics for this, so a special
- * macro for this particular test is useful
- * Note: PC/pyconfig.h defines Py_IS_FINITE as _finite
- */
-#ifndef Py_IS_FINITE
-#if defined HAVE_DECL_ISFINITE && HAVE_DECL_ISFINITE == 1
-#define Py_IS_FINITE(X) isfinite(X)
-#elif defined HAVE_FINITE
-#define Py_IS_FINITE(X) finite(X)
-#else
-#define Py_IS_FINITE(X) (!Py_IS_INFINITY(X) && !Py_IS_NAN(X))
-#endif
-#endif
-
-/* HUGE_VAL is supposed to expand to a positive double infinity. Python
- * uses Py_HUGE_VAL instead because some platforms are broken in this
- * respect. We used to embed code in pyport.h to try to worm around that,
- * but different platforms are broken in conflicting ways. If you're on
- * a platform where HUGE_VAL is defined incorrectly, fiddle your Python
- * config to #define Py_HUGE_VAL to something that works on your platform.
- */
-#ifndef Py_HUGE_VAL
-#define Py_HUGE_VAL HUGE_VAL
-#endif
-
-/* Py_NAN
- * A value that evaluates to a NaN. On IEEE 754 platforms INF*0 or
- * INF/INF works. Define Py_NO_NAN in pyconfig.h if your platform
- * doesn't support NaNs.
- */
-#if !defined(Py_NAN) && !defined(Py_NO_NAN)
-#if !defined(__INTEL_COMPILER)
- #define Py_NAN (Py_HUGE_VAL * 0.)
-#else /* __INTEL_COMPILER */
- #if defined(ICC_NAN_STRICT)
- #pragma float_control(push)
- #pragma float_control(precise, on)
- #pragma float_control(except, on)
- #if defined(_MSC_VER)
- __declspec(noinline)
- #else /* Linux */
- __attribute__((noinline))
- #endif /* _MSC_VER */
- static double __icc_nan()
- {
- return sqrt(-1.0);
- }
- #pragma float_control (pop)
- #define Py_NAN __icc_nan()
- #else /* ICC_NAN_RELAXED as default for Intel Compiler */
- static const union { unsigned char buf[8]; double __icc_nan; } __nan_store = {0,0,0,0,0,0,0xf8,0x7f};
- #define Py_NAN (__nan_store.__icc_nan)
- #endif /* ICC_NAN_STRICT */
-#endif /* __INTEL_COMPILER */
-#endif
-
-/* Py_OVERFLOWED(X)
- * Return 1 iff a libm function overflowed. Set errno to 0 before calling
- * a libm function, and invoke this macro after, passing the function
- * result.
- * Caution:
- * This isn't reliable. C99 no longer requires libm to set errno under
- * any exceptional condition, but does require +- HUGE_VAL return
- * values on overflow. A 754 box *probably* maps HUGE_VAL to a
- * double infinity, and we're cool if that's so, unless the input
- * was an infinity and an infinity is the expected result. A C89
- * system sets errno to ERANGE, so we check for that too. We're
- * out of luck if a C99 754 box doesn't map HUGE_VAL to +Inf, or
- * if the returned result is a NaN, or if a C89 box returns HUGE_VAL
- * in non-overflow cases.
- * X is evaluated more than once.
- * Some platforms have better way to spell this, so expect some #ifdef'ery.
- *
- * OpenBSD uses 'isinf()' because a compiler bug on that platform causes
- * the longer macro version to be mis-compiled. This isn't optimal, and
- * should be removed once a newer compiler is available on that platform.
- * The system that had the failure was running OpenBSD 3.2 on Intel, with
- * gcc 2.95.3.
- *
- * According to Tim's checkin, the FreeBSD systems use isinf() to work
- * around a FPE bug on that platform.
- */
-#if defined(__FreeBSD__) || defined(__OpenBSD__)
-#define Py_OVERFLOWED(X) isinf(X)
-#else
-#define Py_OVERFLOWED(X) ((X) != 0.0 && (errno == ERANGE || \
- (X) == Py_HUGE_VAL || \
- (X) == -Py_HUGE_VAL))
-#endif
-
-/* Return whether integral type *type* is signed or not. */
-#define _Py_IntegralTypeSigned(type) ((type)(-1) < 0)
-/* Return the maximum value of integral type *type*. */
-#define _Py_IntegralTypeMax(type) ((_Py_IntegralTypeSigned(type)) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
-/* Return the minimum value of integral type *type*. */
-#define _Py_IntegralTypeMin(type) ((_Py_IntegralTypeSigned(type)) ? -_Py_IntegralTypeMax(type) - 1 : 0)
-/* Check whether *v* is in the range of integral type *type*. This is most
- * useful if *v* is floating-point, since demoting a floating-point *v* to an
- * integral type that cannot represent *v*'s integral part is undefined
- * behavior. */
-#define _Py_InIntegralTypeRange(type, v) (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
-
-#endif /* Py_PYMATH_H */
diff --git a/EasyTrans/Include/pymem.h b/EasyTrans/Include/pymem.h
deleted file mode 100644
index 458a6489..00000000
--- a/EasyTrans/Include/pymem.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/* The PyMem_ family: low-level memory allocation interfaces.
- See objimpl.h for the PyObject_ memory family.
-*/
-
-#ifndef Py_PYMEM_H
-#define Py_PYMEM_H
-
-#include "pyport.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void *) PyMem_RawMalloc(size_t size);
-PyAPI_FUNC(void *) PyMem_RawCalloc(size_t nelem, size_t elsize);
-PyAPI_FUNC(void *) PyMem_RawRealloc(void *ptr, size_t new_size);
-PyAPI_FUNC(void) PyMem_RawFree(void *ptr);
-
-/* Configure the Python memory allocators. Pass NULL to use default
- allocators. */
-PyAPI_FUNC(int) _PyMem_SetupAllocators(const char *opt);
-
-/* Try to get the allocators name set by _PyMem_SetupAllocators(). */
-PyAPI_FUNC(const char*) _PyMem_GetAllocatorsName(void);
-
-/* Track an allocated memory block in the tracemalloc module.
- Return 0 on success, return -1 on error (failed to allocate memory to store
- the trace).
-
- Return -2 if tracemalloc is disabled.
-
- If memory block is already tracked, update the existing trace. */
-PyAPI_FUNC(int) PyTraceMalloc_Track(
- unsigned int domain,
- uintptr_t ptr,
- size_t size);
-
-/* Untrack an allocated memory block in the tracemalloc module.
- Do nothing if the block was not tracked.
-
- Return -2 if tracemalloc is disabled, otherwise return 0. */
-PyAPI_FUNC(int) PyTraceMalloc_Untrack(
- unsigned int domain,
- uintptr_t ptr);
-
-/* Get the traceback where a memory block was allocated.
-
- Return a tuple of (filename: str, lineno: int) tuples.
-
- Return None if the tracemalloc module is disabled or if the memory block
- is not tracked by tracemalloc.
-
- Raise an exception and return NULL on error. */
-PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback(
- unsigned int domain,
- uintptr_t ptr);
-#endif /* !defined(Py_LIMITED_API) */
-
-
-/* BEWARE:
-
- Each interface exports both functions and macros. Extension modules should
- use the functions, to ensure binary compatibility across Python versions.
- Because the Python implementation is free to change internal details, and
- the macros may (or may not) expose details for speed, if you do use the
- macros you must recompile your extensions with each Python release.
-
- Never mix calls to PyMem_ with calls to the platform malloc/realloc/
- calloc/free. For example, on Windows different DLLs may end up using
- different heaps, and if you use PyMem_Malloc you'll get the memory from the
- heap used by the Python DLL; it could be a disaster if you free()'ed that
- directly in your own extension. Using PyMem_Free instead ensures Python
- can return the memory to the proper heap. As another example, in
- PYMALLOC_DEBUG mode, Python wraps all calls to all PyMem_ and PyObject_
- memory functions in special debugging wrappers that add additional
- debugging info to dynamic memory blocks. The system routines have no idea
- what to do with that stuff, and the Python wrappers have no idea what to do
- with raw blocks obtained directly by the system routines then.
-
- The GIL must be held when using these APIs.
-*/
-
-/*
- * Raw memory interface
- * ====================
- */
-
-/* Functions
-
- Functions supplying platform-independent semantics for malloc/realloc/
- free. These functions make sure that allocating 0 bytes returns a distinct
- non-NULL pointer (whenever possible -- if we're flat out of memory, NULL
- may be returned), even if the platform malloc and realloc don't.
- Returned pointers must be checked for NULL explicitly. No action is
- performed on failure (no exception is set, no warning is printed, etc).
-*/
-
-PyAPI_FUNC(void *) PyMem_Malloc(size_t size);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize);
-#endif
-PyAPI_FUNC(void *) PyMem_Realloc(void *ptr, size_t new_size);
-PyAPI_FUNC(void) PyMem_Free(void *ptr);
-
-#ifndef Py_LIMITED_API
-/* strdup() using PyMem_RawMalloc() */
-PyAPI_FUNC(char *) _PyMem_RawStrdup(const char *str);
-
-/* strdup() using PyMem_Malloc() */
-PyAPI_FUNC(char *) _PyMem_Strdup(const char *str);
-
-/* wcsdup() using PyMem_RawMalloc() */
-PyAPI_FUNC(wchar_t*) _PyMem_RawWcsdup(const wchar_t *str);
-#endif
-
-/* Macros. */
-
-/* PyMem_MALLOC(0) means malloc(1). Some systems would return NULL
- for malloc(0), which would be treated as an error. Some platforms
- would return a pointer with no memory behind it, which would break
- pymalloc. To solve these problems, allocate an extra byte. */
-/* Returns NULL to indicate error if a negative size or size larger than
- Py_ssize_t can represent is supplied. Helps prevents security holes. */
-#define PyMem_MALLOC(n) PyMem_Malloc(n)
-#define PyMem_REALLOC(p, n) PyMem_Realloc(p, n)
-#define PyMem_FREE(p) PyMem_Free(p)
-
-/*
- * Type-oriented memory interface
- * ==============================
- *
- * Allocate memory for n objects of the given type. Returns a new pointer
- * or NULL if the request was too large or memory allocation failed. Use
- * these macros rather than doing the multiplication yourself so that proper
- * overflow checking is always done.
- */
-
-#define PyMem_New(type, n) \
- ( ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \
- ( (type *) PyMem_Malloc((n) * sizeof(type)) ) )
-#define PyMem_NEW(type, n) \
- ( ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \
- ( (type *) PyMem_MALLOC((n) * sizeof(type)) ) )
-
-/*
- * The value of (p) is always clobbered by this macro regardless of success.
- * The caller MUST check if (p) is NULL afterwards and deal with the memory
- * error if so. This means the original value of (p) MUST be saved for the
- * caller's memory error handler to not lose track of it.
- */
-#define PyMem_Resize(p, type, n) \
- ( (p) = ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \
- (type *) PyMem_Realloc((p), (n) * sizeof(type)) )
-#define PyMem_RESIZE(p, type, n) \
- ( (p) = ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \
- (type *) PyMem_REALLOC((p), (n) * sizeof(type)) )
-
-/* PyMem{Del,DEL} are left over from ancient days, and shouldn't be used
- * anymore. They're just confusing aliases for PyMem_{Free,FREE} now.
- */
-#define PyMem_Del PyMem_Free
-#define PyMem_DEL PyMem_FREE
-
-#ifndef Py_LIMITED_API
-typedef enum {
- /* PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree() */
- PYMEM_DOMAIN_RAW,
-
- /* PyMem_Malloc(), PyMem_Realloc() and PyMem_Free() */
- PYMEM_DOMAIN_MEM,
-
- /* PyObject_Malloc(), PyObject_Realloc() and PyObject_Free() */
- PYMEM_DOMAIN_OBJ
-} PyMemAllocatorDomain;
-
-typedef struct {
- /* user context passed as the first argument to the 4 functions */
- void *ctx;
-
- /* allocate a memory block */
- void* (*malloc) (void *ctx, size_t size);
-
- /* allocate a memory block initialized by zeros */
- void* (*calloc) (void *ctx, size_t nelem, size_t elsize);
-
- /* allocate or resize a memory block */
- void* (*realloc) (void *ctx, void *ptr, size_t new_size);
-
- /* release a memory block */
- void (*free) (void *ctx, void *ptr);
-} PyMemAllocatorEx;
-
-/* Get the memory block allocator of the specified domain. */
-PyAPI_FUNC(void) PyMem_GetAllocator(PyMemAllocatorDomain domain,
- PyMemAllocatorEx *allocator);
-
-/* Set the memory block allocator of the specified domain.
-
- The new allocator must return a distinct non-NULL pointer when requesting
- zero bytes.
-
- For the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL
- is not held when the allocator is called.
-
- If the new allocator is not a hook (don't call the previous allocator), the
- PyMem_SetupDebugHooks() function must be called to reinstall the debug hooks
- on top on the new allocator. */
-PyAPI_FUNC(void) PyMem_SetAllocator(PyMemAllocatorDomain domain,
- PyMemAllocatorEx *allocator);
-
-/* Setup hooks to detect bugs in the following Python memory allocator
- functions:
-
- - PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()
- - PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()
- - PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()
-
- Newly allocated memory is filled with the byte 0xCB, freed memory is filled
- with the byte 0xDB. Additional checks:
-
- - detect API violations, ex: PyObject_Free() called on a buffer allocated
- by PyMem_Malloc()
- - detect write before the start of the buffer (buffer underflow)
- - detect write after the end of the buffer (buffer overflow)
-
- The function does nothing if Python is not compiled is debug mode. */
-PyAPI_FUNC(void) PyMem_SetupDebugHooks(void);
-#endif
-
-#ifdef Py_BUILD_CORE
-/* Set the memory allocator of the specified domain to the default.
- Save the old allocator into *old_alloc if it's non-NULL.
- Return on success, or return -1 if the domain is unknown. */
-PyAPI_FUNC(int) _PyMem_SetDefaultAllocator(
- PyMemAllocatorDomain domain,
- PyMemAllocatorEx *old_alloc);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !Py_PYMEM_H */
diff --git a/EasyTrans/Include/pyport.h b/EasyTrans/Include/pyport.h
deleted file mode 100644
index c1f4c7fb..00000000
--- a/EasyTrans/Include/pyport.h
+++ /dev/null
@@ -1,793 +0,0 @@
-#ifndef Py_PYPORT_H
-#define Py_PYPORT_H
-
-#include "pyconfig.h" /* include for defines */
-
-#include
-
-/**************************************************************************
-Symbols and macros to supply platform-independent interfaces to basic
-C language & library operations whose spellings vary across platforms.
-
-Please try to make documentation here as clear as possible: by definition,
-the stuff here is trying to illuminate C's darkest corners.
-
-Config #defines referenced here:
-
-SIGNED_RIGHT_SHIFT_ZERO_FILLS
-Meaning: To be defined iff i>>j does not extend the sign bit when i is a
- signed integral type and i < 0.
-Used in: Py_ARITHMETIC_RIGHT_SHIFT
-
-Py_DEBUG
-Meaning: Extra checks compiled in for debug mode.
-Used in: Py_SAFE_DOWNCAST
-
-**************************************************************************/
-
-/* typedefs for some C9X-defined synonyms for integral types.
- *
- * The names in Python are exactly the same as the C9X names, except with a
- * Py_ prefix. Until C9X is universally implemented, this is the only way
- * to ensure that Python gets reliable names that don't conflict with names
- * in non-Python code that are playing their own tricks to define the C9X
- * names.
- *
- * NOTE: don't go nuts here! Python has no use for *most* of the C9X
- * integral synonyms. Only define the ones we actually need.
- */
-
-/* long long is required. Ensure HAVE_LONG_LONG is defined for compatibility. */
-#ifndef HAVE_LONG_LONG
-#define HAVE_LONG_LONG 1
-#endif
-#ifndef PY_LONG_LONG
-#define PY_LONG_LONG long long
-/* If LLONG_MAX is defined in limits.h, use that. */
-#define PY_LLONG_MIN LLONG_MIN
-#define PY_LLONG_MAX LLONG_MAX
-#define PY_ULLONG_MAX ULLONG_MAX
-#endif
-
-#define PY_UINT32_T uint32_t
-#define PY_UINT64_T uint64_t
-
-/* Signed variants of the above */
-#define PY_INT32_T int32_t
-#define PY_INT64_T int64_t
-
-/* If PYLONG_BITS_IN_DIGIT is not defined then we'll use 30-bit digits if all
- the necessary integer types are available, and we're on a 64-bit platform
- (as determined by SIZEOF_VOID_P); otherwise we use 15-bit digits. */
-
-#ifndef PYLONG_BITS_IN_DIGIT
-#if SIZEOF_VOID_P >= 8
-#define PYLONG_BITS_IN_DIGIT 30
-#else
-#define PYLONG_BITS_IN_DIGIT 15
-#endif
-#endif
-
-/* uintptr_t is the C9X name for an unsigned integral type such that a
- * legitimate void* can be cast to uintptr_t and then back to void* again
- * without loss of information. Similarly for intptr_t, wrt a signed
- * integral type.
- */
-typedef uintptr_t Py_uintptr_t;
-typedef intptr_t Py_intptr_t;
-
-/* Py_ssize_t is a signed integral type such that sizeof(Py_ssize_t) ==
- * sizeof(size_t). C99 doesn't define such a thing directly (size_t is an
- * unsigned integral type). See PEP 353 for details.
- */
-#ifdef HAVE_SSIZE_T
-typedef ssize_t Py_ssize_t;
-#elif SIZEOF_VOID_P == SIZEOF_SIZE_T
-typedef Py_intptr_t Py_ssize_t;
-#else
-# error "Python needs a typedef for Py_ssize_t in pyport.h."
-#endif
-
-/* Py_hash_t is the same size as a pointer. */
-#define SIZEOF_PY_HASH_T SIZEOF_SIZE_T
-typedef Py_ssize_t Py_hash_t;
-/* Py_uhash_t is the unsigned equivalent needed to calculate numeric hash. */
-#define SIZEOF_PY_UHASH_T SIZEOF_SIZE_T
-typedef size_t Py_uhash_t;
-
-/* Only used for compatibility with code that may not be PY_SSIZE_T_CLEAN. */
-#ifdef PY_SSIZE_T_CLEAN
-typedef Py_ssize_t Py_ssize_clean_t;
-#else
-typedef int Py_ssize_clean_t;
-#endif
-
-/* Largest possible value of size_t. */
-#define PY_SIZE_MAX SIZE_MAX
-
-/* Largest positive value of type Py_ssize_t. */
-#define PY_SSIZE_T_MAX ((Py_ssize_t)(((size_t)-1)>>1))
-/* Smallest negative value of type Py_ssize_t. */
-#define PY_SSIZE_T_MIN (-PY_SSIZE_T_MAX-1)
-
-/* PY_FORMAT_SIZE_T is a platform-specific modifier for use in a printf
- * format to convert an argument with the width of a size_t or Py_ssize_t.
- * C99 introduced "z" for this purpose, but not all platforms support that;
- * e.g., MS compilers use "I" instead.
- *
- * These "high level" Python format functions interpret "z" correctly on
- * all platforms (Python interprets the format string itself, and does whatever
- * the platform C requires to convert a size_t/Py_ssize_t argument):
- *
- * PyBytes_FromFormat
- * PyErr_Format
- * PyBytes_FromFormatV
- * PyUnicode_FromFormatV
- *
- * Lower-level uses require that you interpolate the correct format modifier
- * yourself (e.g., calling printf, fprintf, sprintf, PyOS_snprintf); for
- * example,
- *
- * Py_ssize_t index;
- * fprintf(stderr, "index %" PY_FORMAT_SIZE_T "d sucks\n", index);
- *
- * That will expand to %ld, or %Id, or to something else correct for a
- * Py_ssize_t on the platform.
- */
-#ifndef PY_FORMAT_SIZE_T
-# if SIZEOF_SIZE_T == SIZEOF_INT && !defined(__APPLE__)
-# define PY_FORMAT_SIZE_T ""
-# elif SIZEOF_SIZE_T == SIZEOF_LONG
-# define PY_FORMAT_SIZE_T "l"
-# elif defined(MS_WINDOWS)
-# define PY_FORMAT_SIZE_T "I"
-# else
-# error "This platform's pyconfig.h needs to define PY_FORMAT_SIZE_T"
-# endif
-#endif
-
-/* Py_LOCAL can be used instead of static to get the fastest possible calling
- * convention for functions that are local to a given module.
- *
- * Py_LOCAL_INLINE does the same thing, and also explicitly requests inlining,
- * for platforms that support that.
- *
- * If PY_LOCAL_AGGRESSIVE is defined before python.h is included, more
- * "aggressive" inlining/optimization is enabled for the entire module. This
- * may lead to code bloat, and may slow things down for those reasons. It may
- * also lead to errors, if the code relies on pointer aliasing. Use with
- * care.
- *
- * NOTE: You can only use this for functions that are entirely local to a
- * module; functions that are exported via method tables, callbacks, etc,
- * should keep using static.
- */
-
-#if defined(_MSC_VER)
-#if defined(PY_LOCAL_AGGRESSIVE)
-/* enable more aggressive optimization for visual studio */
-#pragma optimize("agtw", on)
-#endif
-/* ignore warnings if the compiler decides not to inline a function */
-#pragma warning(disable: 4710)
-/* fastest possible local call under MSVC */
-#define Py_LOCAL(type) static type __fastcall
-#define Py_LOCAL_INLINE(type) static __inline type __fastcall
-#else
-#define Py_LOCAL(type) static type
-#define Py_LOCAL_INLINE(type) static inline type
-#endif
-
-/* Py_MEMCPY is kept for backwards compatibility,
- * see https://bugs.python.org/issue28126 */
-#define Py_MEMCPY memcpy
-
-#include
-
-#ifdef HAVE_IEEEFP_H
-#include /* needed for 'finite' declaration on some platforms */
-#endif
-
-#include /* Moved here from the math section, before extern "C" */
-
-/********************************************
- * WRAPPER FOR and/or *
- ********************************************/
-
-#ifdef TIME_WITH_SYS_TIME
-#include
-#include
-#else /* !TIME_WITH_SYS_TIME */
-#ifdef HAVE_SYS_TIME_H
-#include
-#else /* !HAVE_SYS_TIME_H */
-#include
-#endif /* !HAVE_SYS_TIME_H */
-#endif /* !TIME_WITH_SYS_TIME */
-
-
-/******************************
- * WRAPPER FOR *
- ******************************/
-
-/* NB caller must include */
-
-#ifdef HAVE_SYS_SELECT_H
-#include
-#endif /* !HAVE_SYS_SELECT_H */
-
-/*******************************
- * stat() and fstat() fiddling *
- *******************************/
-
-#ifdef HAVE_SYS_STAT_H
-#include
-#elif defined(HAVE_STAT_H)
-#include
-#endif
-
-#ifndef S_IFMT
-/* VisualAge C/C++ Failed to Define MountType Field in sys/stat.h */
-#define S_IFMT 0170000
-#endif
-
-#ifndef S_IFLNK
-/* Windows doesn't define S_IFLNK but posixmodule.c maps
- * IO_REPARSE_TAG_SYMLINK to S_IFLNK */
-# define S_IFLNK 0120000
-#endif
-
-#ifndef S_ISREG
-#define S_ISREG(x) (((x) & S_IFMT) == S_IFREG)
-#endif
-
-#ifndef S_ISDIR
-#define S_ISDIR(x) (((x) & S_IFMT) == S_IFDIR)
-#endif
-
-#ifndef S_ISCHR
-#define S_ISCHR(x) (((x) & S_IFMT) == S_IFCHR)
-#endif
-
-#ifdef __cplusplus
-/* Move this down here since some C++ #include's don't like to be included
- inside an extern "C" */
-extern "C" {
-#endif
-
-
-/* Py_ARITHMETIC_RIGHT_SHIFT
- * C doesn't define whether a right-shift of a signed integer sign-extends
- * or zero-fills. Here a macro to force sign extension:
- * Py_ARITHMETIC_RIGHT_SHIFT(TYPE, I, J)
- * Return I >> J, forcing sign extension. Arithmetically, return the
- * floor of I/2**J.
- * Requirements:
- * I should have signed integer type. In the terminology of C99, this can
- * be either one of the five standard signed integer types (signed char,
- * short, int, long, long long) or an extended signed integer type.
- * J is an integer >= 0 and strictly less than the number of bits in the
- * type of I (because C doesn't define what happens for J outside that
- * range either).
- * TYPE used to specify the type of I, but is now ignored. It's been left
- * in for backwards compatibility with versions <= 2.6 or 3.0.
- * Caution:
- * I may be evaluated more than once.
- */
-#ifdef SIGNED_RIGHT_SHIFT_ZERO_FILLS
-#define Py_ARITHMETIC_RIGHT_SHIFT(TYPE, I, J) \
- ((I) < 0 ? -1-((-1-(I)) >> (J)) : (I) >> (J))
-#else
-#define Py_ARITHMETIC_RIGHT_SHIFT(TYPE, I, J) ((I) >> (J))
-#endif
-
-/* Py_FORCE_EXPANSION(X)
- * "Simply" returns its argument. However, macro expansions within the
- * argument are evaluated. This unfortunate trickery is needed to get
- * token-pasting to work as desired in some cases.
- */
-#define Py_FORCE_EXPANSION(X) X
-
-/* Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW)
- * Cast VALUE to type NARROW from type WIDE. In Py_DEBUG mode, this
- * assert-fails if any information is lost.
- * Caution:
- * VALUE may be evaluated more than once.
- */
-#ifdef Py_DEBUG
-#define Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW) \
- (assert((WIDE)(NARROW)(VALUE) == (VALUE)), (NARROW)(VALUE))
-#else
-#define Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW) (NARROW)(VALUE)
-#endif
-
-/* Py_SET_ERRNO_ON_MATH_ERROR(x)
- * If a libm function did not set errno, but it looks like the result
- * overflowed or not-a-number, set errno to ERANGE or EDOM. Set errno
- * to 0 before calling a libm function, and invoke this macro after,
- * passing the function result.
- * Caution:
- * This isn't reliable. See Py_OVERFLOWED comments.
- * X is evaluated more than once.
- */
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || (defined(__hpux) && defined(__ia64))
-#define _Py_SET_EDOM_FOR_NAN(X) if (isnan(X)) errno = EDOM;
-#else
-#define _Py_SET_EDOM_FOR_NAN(X) ;
-#endif
-#define Py_SET_ERRNO_ON_MATH_ERROR(X) \
- do { \
- if (errno == 0) { \
- if ((X) == Py_HUGE_VAL || (X) == -Py_HUGE_VAL) \
- errno = ERANGE; \
- else _Py_SET_EDOM_FOR_NAN(X) \
- } \
- } while(0)
-
-/* Py_SET_ERANGE_ON_OVERFLOW(x)
- * An alias of Py_SET_ERRNO_ON_MATH_ERROR for backward-compatibility.
- */
-#define Py_SET_ERANGE_IF_OVERFLOW(X) Py_SET_ERRNO_ON_MATH_ERROR(X)
-
-/* Py_ADJUST_ERANGE1(x)
- * Py_ADJUST_ERANGE2(x, y)
- * Set errno to 0 before calling a libm function, and invoke one of these
- * macros after, passing the function result(s) (Py_ADJUST_ERANGE2 is useful
- * for functions returning complex results). This makes two kinds of
- * adjustments to errno: (A) If it looks like the platform libm set
- * errno=ERANGE due to underflow, clear errno. (B) If it looks like the
- * platform libm overflowed but didn't set errno, force errno to ERANGE. In
- * effect, we're trying to force a useful implementation of C89 errno
- * behavior.
- * Caution:
- * This isn't reliable. See Py_OVERFLOWED comments.
- * X and Y may be evaluated more than once.
- */
-#define Py_ADJUST_ERANGE1(X) \
- do { \
- if (errno == 0) { \
- if ((X) == Py_HUGE_VAL || (X) == -Py_HUGE_VAL) \
- errno = ERANGE; \
- } \
- else if (errno == ERANGE && (X) == 0.0) \
- errno = 0; \
- } while(0)
-
-#define Py_ADJUST_ERANGE2(X, Y) \
- do { \
- if ((X) == Py_HUGE_VAL || (X) == -Py_HUGE_VAL || \
- (Y) == Py_HUGE_VAL || (Y) == -Py_HUGE_VAL) { \
- if (errno == 0) \
- errno = ERANGE; \
- } \
- else if (errno == ERANGE) \
- errno = 0; \
- } while(0)
-
-/* The functions _Py_dg_strtod and _Py_dg_dtoa in Python/dtoa.c (which are
- * required to support the short float repr introduced in Python 3.1) require
- * that the floating-point unit that's being used for arithmetic operations
- * on C doubles is set to use 53-bit precision. It also requires that the
- * FPU rounding mode is round-half-to-even, but that's less often an issue.
- *
- * If your FPU isn't already set to 53-bit precision/round-half-to-even, and
- * you want to make use of _Py_dg_strtod and _Py_dg_dtoa, then you should
- *
- * #define HAVE_PY_SET_53BIT_PRECISION 1
- *
- * and also give appropriate definitions for the following three macros:
- *
- * _PY_SET_53BIT_PRECISION_START : store original FPU settings, and
- * set FPU to 53-bit precision/round-half-to-even
- * _PY_SET_53BIT_PRECISION_END : restore original FPU settings
- * _PY_SET_53BIT_PRECISION_HEADER : any variable declarations needed to
- * use the two macros above.
- *
- * The macros are designed to be used within a single C function: see
- * Python/pystrtod.c for an example of their use.
- */
-
-/* get and set x87 control word for gcc/x86 */
-#ifdef HAVE_GCC_ASM_FOR_X87
-#define HAVE_PY_SET_53BIT_PRECISION 1
-/* _Py_get/set_387controlword functions are defined in Python/pymath.c */
-#define _Py_SET_53BIT_PRECISION_HEADER \
- unsigned short old_387controlword, new_387controlword
-#define _Py_SET_53BIT_PRECISION_START \
- do { \
- old_387controlword = _Py_get_387controlword(); \
- new_387controlword = (old_387controlword & ~0x0f00) | 0x0200; \
- if (new_387controlword != old_387controlword) \
- _Py_set_387controlword(new_387controlword); \
- } while (0)
-#define _Py_SET_53BIT_PRECISION_END \
- if (new_387controlword != old_387controlword) \
- _Py_set_387controlword(old_387controlword)
-#endif
-
-/* get and set x87 control word for VisualStudio/x86 */
-#if defined(_MSC_VER) && !defined(_WIN64) /* x87 not supported in 64-bit */
-#define HAVE_PY_SET_53BIT_PRECISION 1
-#define _Py_SET_53BIT_PRECISION_HEADER \
- unsigned int old_387controlword, new_387controlword, out_387controlword
-/* We use the __control87_2 function to set only the x87 control word.
- The SSE control word is unaffected. */
-#define _Py_SET_53BIT_PRECISION_START \
- do { \
- __control87_2(0, 0, &old_387controlword, NULL); \
- new_387controlword = \
- (old_387controlword & ~(_MCW_PC | _MCW_RC)) | (_PC_53 | _RC_NEAR); \
- if (new_387controlword != old_387controlword) \
- __control87_2(new_387controlword, _MCW_PC | _MCW_RC, \
- &out_387controlword, NULL); \
- } while (0)
-#define _Py_SET_53BIT_PRECISION_END \
- do { \
- if (new_387controlword != old_387controlword) \
- __control87_2(old_387controlword, _MCW_PC | _MCW_RC, \
- &out_387controlword, NULL); \
- } while (0)
-#endif
-
-#ifdef HAVE_GCC_ASM_FOR_MC68881
-#define HAVE_PY_SET_53BIT_PRECISION 1
-#define _Py_SET_53BIT_PRECISION_HEADER \
- unsigned int old_fpcr, new_fpcr
-#define _Py_SET_53BIT_PRECISION_START \
- do { \
- __asm__ ("fmove.l %%fpcr,%0" : "=g" (old_fpcr)); \
- /* Set double precision / round to nearest. */ \
- new_fpcr = (old_fpcr & ~0xf0) | 0x80; \
- if (new_fpcr != old_fpcr) \
- __asm__ volatile ("fmove.l %0,%%fpcr" : : "g" (new_fpcr)); \
- } while (0)
-#define _Py_SET_53BIT_PRECISION_END \
- do { \
- if (new_fpcr != old_fpcr) \
- __asm__ volatile ("fmove.l %0,%%fpcr" : : "g" (old_fpcr)); \
- } while (0)
-#endif
-
-/* default definitions are empty */
-#ifndef HAVE_PY_SET_53BIT_PRECISION
-#define _Py_SET_53BIT_PRECISION_HEADER
-#define _Py_SET_53BIT_PRECISION_START
-#define _Py_SET_53BIT_PRECISION_END
-#endif
-
-/* If we can't guarantee 53-bit precision, don't use the code
- in Python/dtoa.c, but fall back to standard code. This
- means that repr of a float will be long (17 sig digits).
-
- Realistically, there are two things that could go wrong:
-
- (1) doubles aren't IEEE 754 doubles, or
- (2) we're on x86 with the rounding precision set to 64-bits
- (extended precision), and we don't know how to change
- the rounding precision.
- */
-
-#if !defined(DOUBLE_IS_LITTLE_ENDIAN_IEEE754) && \
- !defined(DOUBLE_IS_BIG_ENDIAN_IEEE754) && \
- !defined(DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754)
-#define PY_NO_SHORT_FLOAT_REPR
-#endif
-
-/* double rounding is symptomatic of use of extended precision on x86. If
- we're seeing double rounding, and we don't have any mechanism available for
- changing the FPU rounding precision, then don't use Python/dtoa.c. */
-#if defined(X87_DOUBLE_ROUNDING) && !defined(HAVE_PY_SET_53BIT_PRECISION)
-#define PY_NO_SHORT_FLOAT_REPR
-#endif
-
-
-/* Py_DEPRECATED(version)
- * Declare a variable, type, or function deprecated.
- * Usage:
- * extern int old_var Py_DEPRECATED(2.3);
- * typedef int T1 Py_DEPRECATED(2.4);
- * extern int x() Py_DEPRECATED(2.5);
- */
-#if defined(__GNUC__) \
- && ((__GNUC__ >= 4) || (__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))
-#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
-#else
-#define Py_DEPRECATED(VERSION_UNUSED)
-#endif
-
-
-/* _Py_HOT_FUNCTION
- * The hot attribute on a function is used to inform the compiler that the
- * function is a hot spot of the compiled program. The function is optimized
- * more aggressively and on many target it is placed into special subsection of
- * the text section so all hot functions appears close together improving
- * locality.
- *
- * Usage:
- * int _Py_HOT_FUNCTION x(void) { return 3; }
- *
- * Issue #28618: This attribute must not be abused, otherwise it can have a
- * negative effect on performance. Only the functions were Python spend most of
- * its time must use it. Use a profiler when running performance benchmark
- * suite to find these functions.
- */
-#if defined(__GNUC__) \
- && ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))
-#define _Py_HOT_FUNCTION __attribute__((hot))
-#else
-#define _Py_HOT_FUNCTION
-#endif
-
-/* _Py_NO_INLINE
- * Disable inlining on a function. For example, it helps to reduce the C stack
- * consumption.
- *
- * Usage:
- * int _Py_NO_INLINE x(void) { return 3; }
- */
-#if defined(__GNUC__) || defined(__clang__)
-# define _Py_NO_INLINE __attribute__((noinline))
-#else
-# define _Py_NO_INLINE
-#endif
-
-/**************************************************************************
-Prototypes that are missing from the standard include files on some systems
-(and possibly only some versions of such systems.)
-
-Please be conservative with adding new ones, document them and enclose them
-in platform-specific #ifdefs.
-**************************************************************************/
-
-#ifdef SOLARIS
-/* Unchecked */
-extern int gethostname(char *, int);
-#endif
-
-#ifdef HAVE__GETPTY
-#include /* we need to import mode_t */
-extern char * _getpty(int *, int, mode_t, int);
-#endif
-
-/* On QNX 6, struct termio must be declared by including sys/termio.h
- if TCGETA, TCSETA, TCSETAW, or TCSETAF are used. sys/termio.h must
- be included before termios.h or it will generate an error. */
-#if defined(HAVE_SYS_TERMIO_H) && !defined(__hpux)
-#include
-#endif
-
-
-/* On 4.4BSD-descendants, ctype functions serves the whole range of
- * wchar_t character set rather than single byte code points only.
- * This characteristic can break some operations of string object
- * including str.upper() and str.split() on UTF-8 locales. This
- * workaround was provided by Tim Robbins of FreeBSD project.
- */
-
-#if defined(__APPLE__)
-# define _PY_PORT_CTYPE_UTF8_ISSUE
-#endif
-
-#ifdef _PY_PORT_CTYPE_UTF8_ISSUE
-#ifndef __cplusplus
- /* The workaround below is unsafe in C++ because
- * the defines these symbols as real functions,
- * with a slightly different signature.
- * See issue #10910
- */
-#include
-#include
-#undef isalnum
-#define isalnum(c) iswalnum(btowc(c))
-#undef isalpha
-#define isalpha(c) iswalpha(btowc(c))
-#undef islower
-#define islower(c) iswlower(btowc(c))
-#undef isspace
-#define isspace(c) iswspace(btowc(c))
-#undef isupper
-#define isupper(c) iswupper(btowc(c))
-#undef tolower
-#define tolower(c) towlower(btowc(c))
-#undef toupper
-#define toupper(c) towupper(btowc(c))
-#endif
-#endif
-
-
-/* Declarations for symbol visibility.
-
- PyAPI_FUNC(type): Declares a public Python API function and return type
- PyAPI_DATA(type): Declares public Python data and its type
- PyMODINIT_FUNC: A Python module init function. If these functions are
- inside the Python core, they are private to the core.
- If in an extension module, it may be declared with
- external linkage depending on the platform.
-
- As a number of platforms support/require "__declspec(dllimport/dllexport)",
- we support a HAVE_DECLSPEC_DLL macro to save duplication.
-*/
-
-/*
- All windows ports, except cygwin, are handled in PC/pyconfig.h.
-
- Cygwin is the only other autoconf platform requiring special
- linkage handling and it uses __declspec().
-*/
-#if defined(__CYGWIN__)
-# define HAVE_DECLSPEC_DLL
-#endif
-
-/* only get special linkage if built as shared or platform is Cygwin */
-#if defined(Py_ENABLE_SHARED) || defined(__CYGWIN__)
-# if defined(HAVE_DECLSPEC_DLL)
-# if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_BUILTIN)
-# define PyAPI_FUNC(RTYPE) __declspec(dllexport) RTYPE
-# define PyAPI_DATA(RTYPE) extern __declspec(dllexport) RTYPE
- /* module init functions inside the core need no external linkage */
- /* except for Cygwin to handle embedding */
-# if defined(__CYGWIN__)
-# define PyMODINIT_FUNC __declspec(dllexport) PyObject*
-# else /* __CYGWIN__ */
-# define PyMODINIT_FUNC PyObject*
-# endif /* __CYGWIN__ */
-# else /* Py_BUILD_CORE */
- /* Building an extension module, or an embedded situation */
- /* public Python functions and data are imported */
- /* Under Cygwin, auto-import functions to prevent compilation */
- /* failures similar to those described at the bottom of 4.1: */
- /* http://docs.python.org/extending/windows.html#a-cookbook-approach */
-# if !defined(__CYGWIN__)
-# define PyAPI_FUNC(RTYPE) __declspec(dllimport) RTYPE
-# endif /* !__CYGWIN__ */
-# define PyAPI_DATA(RTYPE) extern __declspec(dllimport) RTYPE
- /* module init functions outside the core must be exported */
-# if defined(__cplusplus)
-# define PyMODINIT_FUNC extern "C" __declspec(dllexport) PyObject*
-# else /* __cplusplus */
-# define PyMODINIT_FUNC __declspec(dllexport) PyObject*
-# endif /* __cplusplus */
-# endif /* Py_BUILD_CORE */
-# endif /* HAVE_DECLSPEC_DLL */
-#endif /* Py_ENABLE_SHARED */
-
-/* If no external linkage macros defined by now, create defaults */
-#ifndef PyAPI_FUNC
-# define PyAPI_FUNC(RTYPE) RTYPE
-#endif
-#ifndef PyAPI_DATA
-# define PyAPI_DATA(RTYPE) extern RTYPE
-#endif
-#ifndef PyMODINIT_FUNC
-# if defined(__cplusplus)
-# define PyMODINIT_FUNC extern "C" PyObject*
-# else /* __cplusplus */
-# define PyMODINIT_FUNC PyObject*
-# endif /* __cplusplus */
-#endif
-
-/* limits.h constants that may be missing */
-
-#ifndef INT_MAX
-#define INT_MAX 2147483647
-#endif
-
-#ifndef LONG_MAX
-#if SIZEOF_LONG == 4
-#define LONG_MAX 0X7FFFFFFFL
-#elif SIZEOF_LONG == 8
-#define LONG_MAX 0X7FFFFFFFFFFFFFFFL
-#else
-#error "could not set LONG_MAX in pyport.h"
-#endif
-#endif
-
-#ifndef LONG_MIN
-#define LONG_MIN (-LONG_MAX-1)
-#endif
-
-#ifndef LONG_BIT
-#define LONG_BIT (8 * SIZEOF_LONG)
-#endif
-
-#if LONG_BIT != 8 * SIZEOF_LONG
-/* 04-Oct-2000 LONG_BIT is apparently (mis)defined as 64 on some recent
- * 32-bit platforms using gcc. We try to catch that here at compile-time
- * rather than waiting for integer multiplication to trigger bogus
- * overflows.
- */
-#error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/*
- * Hide GCC attributes from compilers that don't support them.
- */
-#if (!defined(__GNUC__) || __GNUC__ < 2 || \
- (__GNUC__ == 2 && __GNUC_MINOR__ < 7) )
-#define Py_GCC_ATTRIBUTE(x)
-#else
-#define Py_GCC_ATTRIBUTE(x) __attribute__(x)
-#endif
-
-/*
- * Specify alignment on compilers that support it.
- */
-#if defined(__GNUC__) && __GNUC__ >= 3
-#define Py_ALIGNED(x) __attribute__((aligned(x)))
-#else
-#define Py_ALIGNED(x)
-#endif
-
-/* Eliminate end-of-loop code not reached warnings from SunPro C
- * when using do{...}while(0) macros
- */
-#ifdef __SUNPRO_C
-#pragma error_messages (off,E_END_OF_LOOP_CODE_NOT_REACHED)
-#endif
-
-#ifndef Py_LL
-#define Py_LL(x) x##LL
-#endif
-
-#ifndef Py_ULL
-#define Py_ULL(x) Py_LL(x##U)
-#endif
-
-#define Py_VA_COPY va_copy
-
-/*
- * Convenient macros to deal with endianness of the platform. WORDS_BIGENDIAN is
- * detected by configure and defined in pyconfig.h. The code in pyconfig.h
- * also takes care of Apple's universal builds.
- */
-
-#ifdef WORDS_BIGENDIAN
-#define PY_BIG_ENDIAN 1
-#define PY_LITTLE_ENDIAN 0
-#else
-#define PY_BIG_ENDIAN 0
-#define PY_LITTLE_ENDIAN 1
-#endif
-
-#if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_BUILTIN)
-/*
- * Macros to protect CRT calls against instant termination when passed an
- * invalid parameter (issue23524).
- */
-#if defined _MSC_VER && _MSC_VER >= 1900
-
-extern _invalid_parameter_handler _Py_silent_invalid_parameter_handler;
-#define _Py_BEGIN_SUPPRESS_IPH { _invalid_parameter_handler _Py_old_handler = \
- _set_thread_local_invalid_parameter_handler(_Py_silent_invalid_parameter_handler);
-#define _Py_END_SUPPRESS_IPH _set_thread_local_invalid_parameter_handler(_Py_old_handler); }
-
-#else
-
-#define _Py_BEGIN_SUPPRESS_IPH
-#define _Py_END_SUPPRESS_IPH
-
-#endif /* _MSC_VER >= 1900 */
-#endif /* Py_BUILD_CORE */
-
-#ifdef __ANDROID__
-/* The Android langinfo.h header is not used. */
-#undef HAVE_LANGINFO_H
-#undef CODESET
-#endif
-
-/* Maximum value of the Windows DWORD type */
-#define PY_DWORD_MAX 4294967295U
-
-/* This macro used to tell whether Python was built with multithreading
- * enabled. Now multithreading is always enabled, but keep the macro
- * for compatibility.
- */
-#ifndef WITH_THREAD
-#define WITH_THREAD
-#endif
-
-#endif /* Py_PYPORT_H */
diff --git a/EasyTrans/Include/pystate.h b/EasyTrans/Include/pystate.h
deleted file mode 100644
index f16ffb8f..00000000
--- a/EasyTrans/Include/pystate.h
+++ /dev/null
@@ -1,455 +0,0 @@
-
-/* Thread and interpreter state structures and their interfaces */
-
-
-#ifndef Py_PYSTATE_H
-#define Py_PYSTATE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "pythread.h"
-
-/* This limitation is for performance and simplicity. If needed it can be
-removed (with effort). */
-#define MAX_CO_EXTRA_USERS 255
-
-/* State shared between threads */
-
-struct _ts; /* Forward */
-struct _is; /* Forward */
-struct _frame; /* Forward declaration for PyFrameObject. */
-
-#ifdef Py_LIMITED_API
-typedef struct _is PyInterpreterState;
-#else
-typedef PyObject* (*_PyFrameEvalFunction)(struct _frame *, int);
-
-
-typedef struct {
- int install_signal_handlers; /* Install signal handlers? -1 means unset */
-
- int ignore_environment; /* -E, Py_IgnoreEnvironmentFlag */
- int use_hash_seed; /* PYTHONHASHSEED=x */
- unsigned long hash_seed;
- const char *allocator; /* Memory allocator: _PyMem_SetupAllocators() */
- int dev_mode; /* PYTHONDEVMODE, -X dev */
- int faulthandler; /* PYTHONFAULTHANDLER, -X faulthandler */
- int tracemalloc; /* PYTHONTRACEMALLOC, -X tracemalloc=N */
- int import_time; /* PYTHONPROFILEIMPORTTIME, -X importtime */
- int show_ref_count; /* -X showrefcount */
- int show_alloc_count; /* -X showalloccount */
- int dump_refs; /* PYTHONDUMPREFS */
- int malloc_stats; /* PYTHONMALLOCSTATS */
- int coerce_c_locale; /* PYTHONCOERCECLOCALE, -1 means unknown */
- int coerce_c_locale_warn; /* PYTHONCOERCECLOCALE=warn */
- int utf8_mode; /* PYTHONUTF8, -X utf8; -1 means unknown */
-
- wchar_t *program_name; /* Program name, see also Py_GetProgramName() */
- int argc; /* Number of command line arguments,
- -1 means unset */
- wchar_t **argv; /* Command line arguments */
- wchar_t *program; /* argv[0] or "" */
-
- int nxoption; /* Number of -X options */
- wchar_t **xoptions; /* -X options */
-
- int nwarnoption; /* Number of warnings options */
- wchar_t **warnoptions; /* Warnings options */
-
- /* Path configuration inputs */
- wchar_t *module_search_path_env; /* PYTHONPATH environment variable */
- wchar_t *home; /* PYTHONHOME environment variable,
- see also Py_SetPythonHome(). */
-
- /* Path configuration outputs */
- int nmodule_search_path; /* Number of sys.path paths,
- -1 means unset */
- wchar_t **module_search_paths; /* sys.path paths */
- wchar_t *executable; /* sys.executable */
- wchar_t *prefix; /* sys.prefix */
- wchar_t *base_prefix; /* sys.base_prefix */
- wchar_t *exec_prefix; /* sys.exec_prefix */
- wchar_t *base_exec_prefix; /* sys.base_exec_prefix */
-
- /* Private fields */
- int _disable_importlib; /* Needed by freeze_importlib */
-} _PyCoreConfig;
-
-#define _PyCoreConfig_INIT \
- (_PyCoreConfig){ \
- .install_signal_handlers = -1, \
- .ignore_environment = -1, \
- .use_hash_seed = -1, \
- .coerce_c_locale = -1, \
- .faulthandler = -1, \
- .tracemalloc = -1, \
- .utf8_mode = -1, \
- .argc = -1, \
- .nmodule_search_path = -1}
-/* Note: _PyCoreConfig_INIT sets other fields to 0/NULL */
-
-/* Placeholders while working on the new configuration API
- *
- * See PEP 432 for final anticipated contents
- */
-typedef struct {
- int install_signal_handlers; /* Install signal handlers? -1 means unset */
- PyObject *argv; /* sys.argv list, can be NULL */
- PyObject *executable; /* sys.executable str */
- PyObject *prefix; /* sys.prefix str */
- PyObject *base_prefix; /* sys.base_prefix str, can be NULL */
- PyObject *exec_prefix; /* sys.exec_prefix str */
- PyObject *base_exec_prefix; /* sys.base_exec_prefix str, can be NULL */
- PyObject *warnoptions; /* sys.warnoptions list, can be NULL */
- PyObject *xoptions; /* sys._xoptions dict, can be NULL */
- PyObject *module_search_path; /* sys.path list */
-} _PyMainInterpreterConfig;
-
-#define _PyMainInterpreterConfig_INIT \
- (_PyMainInterpreterConfig){.install_signal_handlers = -1}
-/* Note: _PyMainInterpreterConfig_INIT sets other fields to 0/NULL */
-
-typedef struct _is {
-
- struct _is *next;
- struct _ts *tstate_head;
-
- int64_t id;
- int64_t id_refcount;
- PyThread_type_lock id_mutex;
-
- PyObject *modules;
- PyObject *modules_by_index;
- PyObject *sysdict;
- PyObject *builtins;
- PyObject *importlib;
-
- /* Used in Python/sysmodule.c. */
- int check_interval;
-
- /* Used in Modules/_threadmodule.c. */
- long num_threads;
- /* Support for runtime thread stack size tuning.
- A value of 0 means using the platform's default stack size
- or the size specified by the THREAD_STACK_SIZE macro. */
- /* Used in Python/thread.c. */
- size_t pythread_stacksize;
-
- PyObject *codec_search_path;
- PyObject *codec_search_cache;
- PyObject *codec_error_registry;
- int codecs_initialized;
- int fscodec_initialized;
-
- _PyCoreConfig core_config;
- _PyMainInterpreterConfig config;
-#ifdef HAVE_DLOPEN
- int dlopenflags;
-#endif
-
- PyObject *builtins_copy;
- PyObject *import_func;
- /* Initialized to PyEval_EvalFrameDefault(). */
- _PyFrameEvalFunction eval_frame;
-
- Py_ssize_t co_extra_user_count;
- freefunc co_extra_freefuncs[MAX_CO_EXTRA_USERS];
-
-#ifdef HAVE_FORK
- PyObject *before_forkers;
- PyObject *after_forkers_parent;
- PyObject *after_forkers_child;
-#endif
- /* AtExit module */
- void (*pyexitfunc)(PyObject *);
- PyObject *pyexitmodule;
-
- uint64_t tstate_next_unique_id;
-} PyInterpreterState;
-#endif /* !Py_LIMITED_API */
-
-
-/* State unique per thread */
-
-#ifndef Py_LIMITED_API
-/* Py_tracefunc return -1 when raising an exception, or 0 for success. */
-typedef int (*Py_tracefunc)(PyObject *, struct _frame *, int, PyObject *);
-
-/* The following values are used for 'what' for tracefunc functions
- *
- * To add a new kind of trace event, also update "trace_init" in
- * Python/sysmodule.c to define the Python level event name
- */
-#define PyTrace_CALL 0
-#define PyTrace_EXCEPTION 1
-#define PyTrace_LINE 2
-#define PyTrace_RETURN 3
-#define PyTrace_C_CALL 4
-#define PyTrace_C_EXCEPTION 5
-#define PyTrace_C_RETURN 6
-#define PyTrace_OPCODE 7
-#endif /* Py_LIMITED_API */
-
-#ifdef Py_LIMITED_API
-typedef struct _ts PyThreadState;
-#else
-
-typedef struct _err_stackitem {
- /* This struct represents an entry on the exception stack, which is a
- * per-coroutine state. (Coroutine in the computer science sense,
- * including the thread and generators).
- * This ensures that the exception state is not impacted by "yields"
- * from an except handler.
- */
- PyObject *exc_type, *exc_value, *exc_traceback;
-
- struct _err_stackitem *previous_item;
-
-} _PyErr_StackItem;
-
-
-typedef struct _ts {
- /* See Python/ceval.c for comments explaining most fields */
-
- struct _ts *prev;
- struct _ts *next;
- PyInterpreterState *interp;
-
- struct _frame *frame;
- int recursion_depth;
- char overflowed; /* The stack has overflowed. Allow 50 more calls
- to handle the runtime error. */
- char recursion_critical; /* The current calls must not cause
- a stack overflow. */
- int stackcheck_counter;
-
- /* 'tracing' keeps track of the execution depth when tracing/profiling.
- This is to prevent the actual trace/profile code from being recorded in
- the trace/profile. */
- int tracing;
- int use_tracing;
-
- Py_tracefunc c_profilefunc;
- Py_tracefunc c_tracefunc;
- PyObject *c_profileobj;
- PyObject *c_traceobj;
-
- /* The exception currently being raised */
- PyObject *curexc_type;
- PyObject *curexc_value;
- PyObject *curexc_traceback;
-
- /* The exception currently being handled, if no coroutines/generators
- * are present. Always last element on the stack referred to be exc_info.
- */
- _PyErr_StackItem exc_state;
-
- /* Pointer to the top of the stack of the exceptions currently
- * being handled */
- _PyErr_StackItem *exc_info;
-
- PyObject *dict; /* Stores per-thread state */
-
- int gilstate_counter;
-
- PyObject *async_exc; /* Asynchronous exception to raise */
- unsigned long thread_id; /* Thread id where this tstate was created */
-
- int trash_delete_nesting;
- PyObject *trash_delete_later;
-
- /* Called when a thread state is deleted normally, but not when it
- * is destroyed after fork().
- * Pain: to prevent rare but fatal shutdown errors (issue 18808),
- * Thread.join() must wait for the join'ed thread's tstate to be unlinked
- * from the tstate chain. That happens at the end of a thread's life,
- * in pystate.c.
- * The obvious way doesn't quite work: create a lock which the tstate
- * unlinking code releases, and have Thread.join() wait to acquire that
- * lock. The problem is that we _are_ at the end of the thread's life:
- * if the thread holds the last reference to the lock, decref'ing the
- * lock will delete the lock, and that may trigger arbitrary Python code
- * if there's a weakref, with a callback, to the lock. But by this time
- * _PyThreadState_Current is already NULL, so only the simplest of C code
- * can be allowed to run (in particular it must not be possible to
- * release the GIL).
- * So instead of holding the lock directly, the tstate holds a weakref to
- * the lock: that's the value of on_delete_data below. Decref'ing a
- * weakref is harmless.
- * on_delete points to _threadmodule.c's static release_sentinel() function.
- * After the tstate is unlinked, release_sentinel is called with the
- * weakref-to-lock (on_delete_data) argument, and release_sentinel releases
- * the indirectly held lock.
- */
- void (*on_delete)(void *);
- void *on_delete_data;
-
- int coroutine_origin_tracking_depth;
-
- PyObject *coroutine_wrapper;
- int in_coroutine_wrapper;
-
- PyObject *async_gen_firstiter;
- PyObject *async_gen_finalizer;
-
- PyObject *context;
- uint64_t context_ver;
-
- /* Unique thread state id. */
- uint64_t id;
-
- /* XXX signal handlers should also be here */
-
-} PyThreadState;
-#endif /* !Py_LIMITED_API */
-
-
-PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_New(void);
-PyAPI_FUNC(void) PyInterpreterState_Clear(PyInterpreterState *);
-PyAPI_FUNC(void) PyInterpreterState_Delete(PyInterpreterState *);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000
-/* New in 3.7 */
-PyAPI_FUNC(int64_t) PyInterpreterState_GetID(PyInterpreterState *);
-#endif
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyState_AddModule(PyObject*, struct PyModuleDef*);
-#endif /* !Py_LIMITED_API */
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-/* New in 3.3 */
-PyAPI_FUNC(int) PyState_AddModule(PyObject*, struct PyModuleDef*);
-PyAPI_FUNC(int) PyState_RemoveModule(struct PyModuleDef*);
-#endif
-PyAPI_FUNC(PyObject*) PyState_FindModule(struct PyModuleDef*);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyState_ClearModules(void);
-#endif
-
-PyAPI_FUNC(PyThreadState *) PyThreadState_New(PyInterpreterState *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyThreadState *) _PyThreadState_Prealloc(PyInterpreterState *);
-PyAPI_FUNC(void) _PyThreadState_Init(PyThreadState *);
-#endif /* !Py_LIMITED_API */
-PyAPI_FUNC(void) PyThreadState_Clear(PyThreadState *);
-PyAPI_FUNC(void) PyThreadState_Delete(PyThreadState *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyThreadState_DeleteExcept(PyThreadState *tstate);
-#endif /* !Py_LIMITED_API */
-PyAPI_FUNC(void) PyThreadState_DeleteCurrent(void);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyGILState_Reinit(void);
-#endif /* !Py_LIMITED_API */
-
-/* Return the current thread state. The global interpreter lock must be held.
- * When the current thread state is NULL, this issues a fatal error (so that
- * the caller needn't check for NULL). */
-PyAPI_FUNC(PyThreadState *) PyThreadState_Get(void);
-
-#ifndef Py_LIMITED_API
-/* Similar to PyThreadState_Get(), but don't issue a fatal error
- * if it is NULL. */
-PyAPI_FUNC(PyThreadState *) _PyThreadState_UncheckedGet(void);
-#endif /* !Py_LIMITED_API */
-
-PyAPI_FUNC(PyThreadState *) PyThreadState_Swap(PyThreadState *);
-PyAPI_FUNC(PyObject *) PyThreadState_GetDict(void);
-PyAPI_FUNC(int) PyThreadState_SetAsyncExc(unsigned long, PyObject *);
-
-
-/* Variable and macro for in-line access to current thread state */
-
-/* Assuming the current thread holds the GIL, this is the
- PyThreadState for the current thread. */
-#ifdef Py_BUILD_CORE
-# define _PyThreadState_Current _PyRuntime.gilstate.tstate_current
-# define PyThreadState_GET() \
- ((PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current))
-#else
-# define PyThreadState_GET() PyThreadState_Get()
-#endif
-
-typedef
- enum {PyGILState_LOCKED, PyGILState_UNLOCKED}
- PyGILState_STATE;
-
-
-/* Ensure that the current thread is ready to call the Python
- C API, regardless of the current state of Python, or of its
- thread lock. This may be called as many times as desired
- by a thread so long as each call is matched with a call to
- PyGILState_Release(). In general, other thread-state APIs may
- be used between _Ensure() and _Release() calls, so long as the
- thread-state is restored to its previous state before the Release().
- For example, normal use of the Py_BEGIN_ALLOW_THREADS/
- Py_END_ALLOW_THREADS macros are acceptable.
-
- The return value is an opaque "handle" to the thread state when
- PyGILState_Ensure() was called, and must be passed to
- PyGILState_Release() to ensure Python is left in the same state. Even
- though recursive calls are allowed, these handles can *not* be shared -
- each unique call to PyGILState_Ensure must save the handle for its
- call to PyGILState_Release.
-
- When the function returns, the current thread will hold the GIL.
-
- Failure is a fatal error.
-*/
-PyAPI_FUNC(PyGILState_STATE) PyGILState_Ensure(void);
-
-/* Release any resources previously acquired. After this call, Python's
- state will be the same as it was prior to the corresponding
- PyGILState_Ensure() call (but generally this state will be unknown to
- the caller, hence the use of the GILState API.)
-
- Every call to PyGILState_Ensure must be matched by a call to
- PyGILState_Release on the same thread.
-*/
-PyAPI_FUNC(void) PyGILState_Release(PyGILState_STATE);
-
-/* Helper/diagnostic function - get the current thread state for
- this thread. May return NULL if no GILState API has been used
- on the current thread. Note that the main thread always has such a
- thread-state, even if no auto-thread-state call has been made
- on the main thread.
-*/
-PyAPI_FUNC(PyThreadState *) PyGILState_GetThisThreadState(void);
-
-#ifndef Py_LIMITED_API
-/* Helper/diagnostic function - return 1 if the current thread
- currently holds the GIL, 0 otherwise.
-
- The function returns 1 if _PyGILState_check_enabled is non-zero. */
-PyAPI_FUNC(int) PyGILState_Check(void);
-
-/* Unsafe function to get the single PyInterpreterState used by this process'
- GILState implementation.
-
- Return NULL before _PyGILState_Init() is called and after _PyGILState_Fini()
- is called. */
-PyAPI_FUNC(PyInterpreterState *) _PyGILState_GetInterpreterStateUnsafe(void);
-#endif /* !Py_LIMITED_API */
-
-
-/* The implementation of sys._current_frames() Returns a dict mapping
- thread id to that thread's current frame.
-*/
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyThread_CurrentFrames(void);
-#endif
-
-/* Routines for advanced debuggers, requested by David Beazley.
- Don't use unless you know what you are doing! */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Main(void);
-PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Head(void);
-PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Next(PyInterpreterState *);
-PyAPI_FUNC(PyThreadState *) PyInterpreterState_ThreadHead(PyInterpreterState *);
-PyAPI_FUNC(PyThreadState *) PyThreadState_Next(PyThreadState *);
-
-typedef struct _frame *(*PyThreadFrameGetter)(PyThreadState *self_);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PYSTATE_H */
diff --git a/EasyTrans/Include/pystrcmp.h b/EasyTrans/Include/pystrcmp.h
deleted file mode 100644
index edb12397..00000000
--- a/EasyTrans/Include/pystrcmp.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef Py_STRCMP_H
-#define Py_STRCMP_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(int) PyOS_mystrnicmp(const char *, const char *, Py_ssize_t);
-PyAPI_FUNC(int) PyOS_mystricmp(const char *, const char *);
-
-#ifdef MS_WINDOWS
-#define PyOS_strnicmp strnicmp
-#define PyOS_stricmp stricmp
-#else
-#define PyOS_strnicmp PyOS_mystrnicmp
-#define PyOS_stricmp PyOS_mystricmp
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !Py_STRCMP_H */
diff --git a/EasyTrans/Include/pystrhex.h b/EasyTrans/Include/pystrhex.h
deleted file mode 100644
index 66a30e22..00000000
--- a/EasyTrans/Include/pystrhex.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef Py_STRHEX_H
-#define Py_STRHEX_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-/* Returns a str() containing the hex representation of argbuf. */
-PyAPI_FUNC(PyObject*) _Py_strhex(const char* argbuf, const Py_ssize_t arglen);
-/* Returns a bytes() containing the ASCII hex representation of argbuf. */
-PyAPI_FUNC(PyObject*) _Py_strhex_bytes(const char* argbuf, const Py_ssize_t arglen);
-#endif /* !Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !Py_STRHEX_H */
diff --git a/EasyTrans/Include/pystrtod.h b/EasyTrans/Include/pystrtod.h
deleted file mode 100644
index c1e84de6..00000000
--- a/EasyTrans/Include/pystrtod.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef Py_STRTOD_H
-#define Py_STRTOD_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-PyAPI_FUNC(double) PyOS_string_to_double(const char *str,
- char **endptr,
- PyObject *overflow_exception);
-
-/* The caller is responsible for calling PyMem_Free to free the buffer
- that's is returned. */
-PyAPI_FUNC(char *) PyOS_double_to_string(double val,
- char format_code,
- int precision,
- int flags,
- int *type);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _Py_string_to_number_with_underscores(
- const char *str, Py_ssize_t len, const char *what, PyObject *obj, void *arg,
- PyObject *(*innerfunc)(const char *, Py_ssize_t, void *));
-
-PyAPI_FUNC(double) _Py_parse_inf_or_nan(const char *p, char **endptr);
-#endif
-
-
-/* PyOS_double_to_string's "flags" parameter can be set to 0 or more of: */
-#define Py_DTSF_SIGN 0x01 /* always add the sign */
-#define Py_DTSF_ADD_DOT_0 0x02 /* if the result is an integer add ".0" */
-#define Py_DTSF_ALT 0x04 /* "alternate" formatting. it's format_code
- specific */
-
-/* PyOS_double_to_string's "type", if non-NULL, will be set to one of: */
-#define Py_DTST_FINITE 0
-#define Py_DTST_INFINITE 1
-#define Py_DTST_NAN 2
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !Py_STRTOD_H */
diff --git a/EasyTrans/Include/pythonrun.h b/EasyTrans/Include/pythonrun.h
deleted file mode 100644
index 6f0c6fc6..00000000
--- a/EasyTrans/Include/pythonrun.h
+++ /dev/null
@@ -1,181 +0,0 @@
-
-/* Interfaces to parse and execute pieces of python code */
-
-#ifndef Py_PYTHONRUN_H
-#define Py_PYTHONRUN_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) PyRun_SimpleStringFlags(const char *, PyCompilerFlags *);
-PyAPI_FUNC(int) PyRun_AnyFileFlags(FILE *, const char *, PyCompilerFlags *);
-PyAPI_FUNC(int) PyRun_AnyFileExFlags(
- FILE *fp,
- const char *filename, /* decoded from the filesystem encoding */
- int closeit,
- PyCompilerFlags *flags);
-PyAPI_FUNC(int) PyRun_SimpleFileExFlags(
- FILE *fp,
- const char *filename, /* decoded from the filesystem encoding */
- int closeit,
- PyCompilerFlags *flags);
-PyAPI_FUNC(int) PyRun_InteractiveOneFlags(
- FILE *fp,
- const char *filename, /* decoded from the filesystem encoding */
- PyCompilerFlags *flags);
-PyAPI_FUNC(int) PyRun_InteractiveOneObject(
- FILE *fp,
- PyObject *filename,
- PyCompilerFlags *flags);
-PyAPI_FUNC(int) PyRun_InteractiveLoopFlags(
- FILE *fp,
- const char *filename, /* decoded from the filesystem encoding */
- PyCompilerFlags *flags);
-
-PyAPI_FUNC(struct _mod *) PyParser_ASTFromString(
- const char *s,
- const char *filename, /* decoded from the filesystem encoding */
- int start,
- PyCompilerFlags *flags,
- PyArena *arena);
-PyAPI_FUNC(struct _mod *) PyParser_ASTFromStringObject(
- const char *s,
- PyObject *filename,
- int start,
- PyCompilerFlags *flags,
- PyArena *arena);
-PyAPI_FUNC(struct _mod *) PyParser_ASTFromFile(
- FILE *fp,
- const char *filename, /* decoded from the filesystem encoding */
- const char* enc,
- int start,
- const char *ps1,
- const char *ps2,
- PyCompilerFlags *flags,
- int *errcode,
- PyArena *arena);
-PyAPI_FUNC(struct _mod *) PyParser_ASTFromFileObject(
- FILE *fp,
- PyObject *filename,
- const char* enc,
- int start,
- const char *ps1,
- const char *ps2,
- PyCompilerFlags *flags,
- int *errcode,
- PyArena *arena);
-#endif
-
-#ifndef PyParser_SimpleParseString
-#define PyParser_SimpleParseString(S, B) \
- PyParser_SimpleParseStringFlags(S, B, 0)
-#define PyParser_SimpleParseFile(FP, S, B) \
- PyParser_SimpleParseFileFlags(FP, S, B, 0)
-#endif
-PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlags(const char *, int,
- int);
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlagsFilename(const char *,
- const char *,
- int, int);
-#endif
-PyAPI_FUNC(struct _node *) PyParser_SimpleParseFileFlags(FILE *, const char *,
- int, int);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) PyRun_StringFlags(const char *, int, PyObject *,
- PyObject *, PyCompilerFlags *);
-
-PyAPI_FUNC(PyObject *) PyRun_FileExFlags(
- FILE *fp,
- const char *filename, /* decoded from the filesystem encoding */
- int start,
- PyObject *globals,
- PyObject *locals,
- int closeit,
- PyCompilerFlags *flags);
-#endif
-
-#ifdef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) Py_CompileString(const char *, const char *, int);
-#else
-#define Py_CompileString(str, p, s) Py_CompileStringExFlags(str, p, s, NULL, -1)
-#define Py_CompileStringFlags(str, p, s, f) Py_CompileStringExFlags(str, p, s, f, -1)
-PyAPI_FUNC(PyObject *) Py_CompileStringExFlags(
- const char *str,
- const char *filename, /* decoded from the filesystem encoding */
- int start,
- PyCompilerFlags *flags,
- int optimize);
-PyAPI_FUNC(PyObject *) Py_CompileStringObject(
- const char *str,
- PyObject *filename, int start,
- PyCompilerFlags *flags,
- int optimize);
-#endif
-PyAPI_FUNC(struct symtable *) Py_SymtableString(
- const char *str,
- const char *filename, /* decoded from the filesystem encoding */
- int start);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(struct symtable *) Py_SymtableStringObject(
- const char *str,
- PyObject *filename,
- int start);
-#endif
-
-PyAPI_FUNC(void) PyErr_Print(void);
-PyAPI_FUNC(void) PyErr_PrintEx(int);
-PyAPI_FUNC(void) PyErr_Display(PyObject *, PyObject *, PyObject *);
-
-#ifndef Py_LIMITED_API
-/* Use macros for a bunch of old variants */
-#define PyRun_String(str, s, g, l) PyRun_StringFlags(str, s, g, l, NULL)
-#define PyRun_AnyFile(fp, name) PyRun_AnyFileExFlags(fp, name, 0, NULL)
-#define PyRun_AnyFileEx(fp, name, closeit) \
- PyRun_AnyFileExFlags(fp, name, closeit, NULL)
-#define PyRun_AnyFileFlags(fp, name, flags) \
- PyRun_AnyFileExFlags(fp, name, 0, flags)
-#define PyRun_SimpleString(s) PyRun_SimpleStringFlags(s, NULL)
-#define PyRun_SimpleFile(f, p) PyRun_SimpleFileExFlags(f, p, 0, NULL)
-#define PyRun_SimpleFileEx(f, p, c) PyRun_SimpleFileExFlags(f, p, c, NULL)
-#define PyRun_InteractiveOne(f, p) PyRun_InteractiveOneFlags(f, p, NULL)
-#define PyRun_InteractiveLoop(f, p) PyRun_InteractiveLoopFlags(f, p, NULL)
-#define PyRun_File(fp, p, s, g, l) \
- PyRun_FileExFlags(fp, p, s, g, l, 0, NULL)
-#define PyRun_FileEx(fp, p, s, g, l, c) \
- PyRun_FileExFlags(fp, p, s, g, l, c, NULL)
-#define PyRun_FileFlags(fp, p, s, g, l, flags) \
- PyRun_FileExFlags(fp, p, s, g, l, 0, flags)
-#endif
-
-/* Stuff with no proper home (yet) */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(char *) PyOS_Readline(FILE *, FILE *, const char *);
-#endif
-PyAPI_DATA(int) (*PyOS_InputHook)(void);
-PyAPI_DATA(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *, const char *);
-#ifndef Py_LIMITED_API
-PyAPI_DATA(PyThreadState*) _PyOS_ReadlineTState;
-#endif
-
-/* Stack size, in "pointers" (so we get extra safety margins
- on 64-bit platforms). On a 32-bit platform, this translates
- to an 8k margin. */
-#define PYOS_STACK_MARGIN 2048
-
-#if defined(WIN32) && !defined(MS_WIN64) && defined(_MSC_VER) && _MSC_VER >= 1300
-/* Enable stack checking under Microsoft C */
-#define USE_STACKCHECK
-#endif
-
-#ifdef USE_STACKCHECK
-/* Check that we aren't overflowing our stack */
-PyAPI_FUNC(int) PyOS_CheckStack(void);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_PYTHONRUN_H */
diff --git a/EasyTrans/Include/pythread.h b/EasyTrans/Include/pythread.h
deleted file mode 100644
index eb61033b..00000000
--- a/EasyTrans/Include/pythread.h
+++ /dev/null
@@ -1,155 +0,0 @@
-
-#ifndef Py_PYTHREAD_H
-#define Py_PYTHREAD_H
-
-typedef void *PyThread_type_lock;
-typedef void *PyThread_type_sema;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Return status codes for Python lock acquisition. Chosen for maximum
- * backwards compatibility, ie failure -> 0, success -> 1. */
-typedef enum PyLockStatus {
- PY_LOCK_FAILURE = 0,
- PY_LOCK_ACQUIRED = 1,
- PY_LOCK_INTR
-} PyLockStatus;
-
-#ifndef Py_LIMITED_API
-#define PYTHREAD_INVALID_THREAD_ID ((unsigned long)-1)
-#endif
-
-PyAPI_FUNC(void) PyThread_init_thread(void);
-PyAPI_FUNC(unsigned long) PyThread_start_new_thread(void (*)(void *), void *);
-PyAPI_FUNC(void) PyThread_exit_thread(void);
-PyAPI_FUNC(unsigned long) PyThread_get_thread_ident(void);
-
-PyAPI_FUNC(PyThread_type_lock) PyThread_allocate_lock(void);
-PyAPI_FUNC(void) PyThread_free_lock(PyThread_type_lock);
-PyAPI_FUNC(int) PyThread_acquire_lock(PyThread_type_lock, int);
-#define WAIT_LOCK 1
-#define NOWAIT_LOCK 0
-
-/* PY_TIMEOUT_T is the integral type used to specify timeouts when waiting
- on a lock (see PyThread_acquire_lock_timed() below).
- PY_TIMEOUT_MAX is the highest usable value (in microseconds) of that
- type, and depends on the system threading API.
-
- NOTE: this isn't the same value as `_thread.TIMEOUT_MAX`. The _thread
- module exposes a higher-level API, with timeouts expressed in seconds
- and floating-point numbers allowed.
-*/
-#define PY_TIMEOUT_T long long
-
-#if defined(_POSIX_THREADS)
- /* PyThread_acquire_lock_timed() uses _PyTime_FromNanoseconds(us * 1000),
- convert microseconds to nanoseconds. */
-# define PY_TIMEOUT_MAX (PY_LLONG_MAX / 1000)
-#elif defined (NT_THREADS)
- /* In the NT API, the timeout is a DWORD and is expressed in milliseconds */
-# if 0xFFFFFFFFLL * 1000 < PY_LLONG_MAX
-# define PY_TIMEOUT_MAX (0xFFFFFFFFLL * 1000)
-# else
-# define PY_TIMEOUT_MAX PY_LLONG_MAX
-# endif
-#else
-# define PY_TIMEOUT_MAX PY_LLONG_MAX
-#endif
-
-
-/* If microseconds == 0, the call is non-blocking: it returns immediately
- even when the lock can't be acquired.
- If microseconds > 0, the call waits up to the specified duration.
- If microseconds < 0, the call waits until success (or abnormal failure)
-
- microseconds must be less than PY_TIMEOUT_MAX. Behaviour otherwise is
- undefined.
-
- If intr_flag is true and the acquire is interrupted by a signal, then the
- call will return PY_LOCK_INTR. The caller may reattempt to acquire the
- lock.
-*/
-PyAPI_FUNC(PyLockStatus) PyThread_acquire_lock_timed(PyThread_type_lock,
- PY_TIMEOUT_T microseconds,
- int intr_flag);
-
-PyAPI_FUNC(void) PyThread_release_lock(PyThread_type_lock);
-
-PyAPI_FUNC(size_t) PyThread_get_stacksize(void);
-PyAPI_FUNC(int) PyThread_set_stacksize(size_t);
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(PyObject*) PyThread_GetInfo(void);
-#endif
-
-
-/* Thread Local Storage (TLS) API
- TLS API is DEPRECATED. Use Thread Specific Storage (TSS) API.
-
- The existing TLS API has used int to represent TLS keys across all
- platforms, but it is not POSIX-compliant. Therefore, the new TSS API uses
- opaque data type to represent TSS keys to be compatible (see PEP 539).
-*/
-PyAPI_FUNC(int) PyThread_create_key(void) Py_DEPRECATED(3.7);
-PyAPI_FUNC(void) PyThread_delete_key(int key) Py_DEPRECATED(3.7);
-PyAPI_FUNC(int) PyThread_set_key_value(int key, void *value) Py_DEPRECATED(3.7);
-PyAPI_FUNC(void *) PyThread_get_key_value(int key) Py_DEPRECATED(3.7);
-PyAPI_FUNC(void) PyThread_delete_key_value(int key) Py_DEPRECATED(3.7);
-
-/* Cleanup after a fork */
-PyAPI_FUNC(void) PyThread_ReInitTLS(void) Py_DEPRECATED(3.7);
-
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000
-/* New in 3.7 */
-/* Thread Specific Storage (TSS) API */
-
-typedef struct _Py_tss_t Py_tss_t; /* opaque */
-
-#ifndef Py_LIMITED_API
-#if defined(_POSIX_THREADS)
- /* Darwin needs pthread.h to know type name the pthread_key_t. */
-# include
-# define NATIVE_TSS_KEY_T pthread_key_t
-#elif defined(NT_THREADS)
- /* In Windows, native TSS key type is DWORD,
- but hardcode the unsigned long to avoid errors for include directive.
- */
-# define NATIVE_TSS_KEY_T unsigned long
-#else
-# error "Require native threads. See https://bugs.python.org/issue31370"
-#endif
-
-/* When Py_LIMITED_API is not defined, the type layout of Py_tss_t is
- exposed to allow static allocation in the API clients. Even in this case,
- you must handle TSS keys through API functions due to compatibility.
-*/
-struct _Py_tss_t {
- int _is_initialized;
- NATIVE_TSS_KEY_T _key;
-};
-
-#undef NATIVE_TSS_KEY_T
-
-/* When static allocation, you must initialize with Py_tss_NEEDS_INIT. */
-#define Py_tss_NEEDS_INIT {0}
-#endif /* !Py_LIMITED_API */
-
-PyAPI_FUNC(Py_tss_t *) PyThread_tss_alloc(void);
-PyAPI_FUNC(void) PyThread_tss_free(Py_tss_t *key);
-
-/* The parameter key must not be NULL. */
-PyAPI_FUNC(int) PyThread_tss_is_created(Py_tss_t *key);
-PyAPI_FUNC(int) PyThread_tss_create(Py_tss_t *key);
-PyAPI_FUNC(void) PyThread_tss_delete(Py_tss_t *key);
-PyAPI_FUNC(int) PyThread_tss_set(Py_tss_t *key, void *value);
-PyAPI_FUNC(void *) PyThread_tss_get(Py_tss_t *key);
-#endif /* New in 3.7 */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !Py_PYTHREAD_H */
diff --git a/EasyTrans/Include/pytime.h b/EasyTrans/Include/pytime.h
deleted file mode 100644
index 4870a9df..00000000
--- a/EasyTrans/Include/pytime.h
+++ /dev/null
@@ -1,246 +0,0 @@
-#ifndef Py_LIMITED_API
-#ifndef Py_PYTIME_H
-#define Py_PYTIME_H
-
-#include "pyconfig.h" /* include for defines */
-#include "object.h"
-
-/**************************************************************************
-Symbols and macros to supply platform-independent interfaces to time related
-functions and constants
-**************************************************************************/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* _PyTime_t: Python timestamp with subsecond precision. It can be used to
- store a duration, and so indirectly a date (related to another date, like
- UNIX epoch). */
-typedef int64_t _PyTime_t;
-#define _PyTime_MIN PY_LLONG_MIN
-#define _PyTime_MAX PY_LLONG_MAX
-
-typedef enum {
- /* Round towards minus infinity (-inf).
- For example, used to read a clock. */
- _PyTime_ROUND_FLOOR=0,
- /* Round towards infinity (+inf).
- For example, used for timeout to wait "at least" N seconds. */
- _PyTime_ROUND_CEILING=1,
- /* Round to nearest with ties going to nearest even integer.
- For example, used to round from a Python float. */
- _PyTime_ROUND_HALF_EVEN=2,
- /* Round away from zero
- For example, used for timeout. _PyTime_ROUND_CEILING rounds
- -1e-9 to 0 milliseconds which causes bpo-31786 issue.
- _PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps
- the timeout sign as expected. select.poll(timeout) must block
- for negative values." */
- _PyTime_ROUND_UP=3,
- /* _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be
- used for timeouts. */
- _PyTime_ROUND_TIMEOUT = _PyTime_ROUND_UP
-} _PyTime_round_t;
-
-
-/* Convert a time_t to a PyLong. */
-PyAPI_FUNC(PyObject *) _PyLong_FromTime_t(
- time_t sec);
-
-/* Convert a PyLong to a time_t. */
-PyAPI_FUNC(time_t) _PyLong_AsTime_t(
- PyObject *obj);
-
-/* Convert a number of seconds, int or float, to time_t. */
-PyAPI_FUNC(int) _PyTime_ObjectToTime_t(
- PyObject *obj,
- time_t *sec,
- _PyTime_round_t);
-
-/* Convert a number of seconds, int or float, to a timeval structure.
- usec is in the range [0; 999999] and rounded towards zero.
- For example, -1.2 is converted to (-2, 800000). */
-PyAPI_FUNC(int) _PyTime_ObjectToTimeval(
- PyObject *obj,
- time_t *sec,
- long *usec,
- _PyTime_round_t);
-
-/* Convert a number of seconds, int or float, to a timespec structure.
- nsec is in the range [0; 999999999] and rounded towards zero.
- For example, -1.2 is converted to (-2, 800000000). */
-PyAPI_FUNC(int) _PyTime_ObjectToTimespec(
- PyObject *obj,
- time_t *sec,
- long *nsec,
- _PyTime_round_t);
-
-
-/* Create a timestamp from a number of seconds. */
-PyAPI_FUNC(_PyTime_t) _PyTime_FromSeconds(int seconds);
-
-/* Macro to create a timestamp from a number of seconds, no integer overflow.
- Only use the macro for small values, prefer _PyTime_FromSeconds(). */
-#define _PYTIME_FROMSECONDS(seconds) \
- ((_PyTime_t)(seconds) * (1000 * 1000 * 1000))
-
-/* Create a timestamp from a number of nanoseconds. */
-PyAPI_FUNC(_PyTime_t) _PyTime_FromNanoseconds(_PyTime_t ns);
-
-/* Create a timestamp from nanoseconds (Python int). */
-PyAPI_FUNC(int) _PyTime_FromNanosecondsObject(_PyTime_t *t,
- PyObject *obj);
-
-/* Convert a number of seconds (Python float or int) to a timetamp.
- Raise an exception and return -1 on error, return 0 on success. */
-PyAPI_FUNC(int) _PyTime_FromSecondsObject(_PyTime_t *t,
- PyObject *obj,
- _PyTime_round_t round);
-
-/* Convert a number of milliseconds (Python float or int, 10^-3) to a timetamp.
- Raise an exception and return -1 on error, return 0 on success. */
-PyAPI_FUNC(int) _PyTime_FromMillisecondsObject(_PyTime_t *t,
- PyObject *obj,
- _PyTime_round_t round);
-
-/* Convert a timestamp to a number of seconds as a C double. */
-PyAPI_FUNC(double) _PyTime_AsSecondsDouble(_PyTime_t t);
-
-/* Convert timestamp to a number of milliseconds (10^-3 seconds). */
-PyAPI_FUNC(_PyTime_t) _PyTime_AsMilliseconds(_PyTime_t t,
- _PyTime_round_t round);
-
-/* Convert timestamp to a number of microseconds (10^-6 seconds). */
-PyAPI_FUNC(_PyTime_t) _PyTime_AsMicroseconds(_PyTime_t t,
- _PyTime_round_t round);
-
-/* Convert timestamp to a number of nanoseconds (10^-9 seconds) as a Python int
- object. */
-PyAPI_FUNC(PyObject *) _PyTime_AsNanosecondsObject(_PyTime_t t);
-
-/* Create a timestamp from a timeval structure.
- Raise an exception and return -1 on overflow, return 0 on success. */
-PyAPI_FUNC(int) _PyTime_FromTimeval(_PyTime_t *tp, struct timeval *tv);
-
-/* Convert a timestamp to a timeval structure (microsecond resolution).
- tv_usec is always positive.
- Raise an exception and return -1 if the conversion overflowed,
- return 0 on success. */
-PyAPI_FUNC(int) _PyTime_AsTimeval(_PyTime_t t,
- struct timeval *tv,
- _PyTime_round_t round);
-
-/* Similar to _PyTime_AsTimeval(), but don't raise an exception on error. */
-PyAPI_FUNC(int) _PyTime_AsTimeval_noraise(_PyTime_t t,
- struct timeval *tv,
- _PyTime_round_t round);
-
-/* Convert a timestamp to a number of seconds (secs) and microseconds (us).
- us is always positive. This function is similar to _PyTime_AsTimeval()
- except that secs is always a time_t type, whereas the timeval structure
- uses a C long for tv_sec on Windows.
- Raise an exception and return -1 if the conversion overflowed,
- return 0 on success. */
-PyAPI_FUNC(int) _PyTime_AsTimevalTime_t(
- _PyTime_t t,
- time_t *secs,
- int *us,
- _PyTime_round_t round);
-
-#if defined(HAVE_CLOCK_GETTIME) || defined(HAVE_KQUEUE)
-/* Create a timestamp from a timespec structure.
- Raise an exception and return -1 on overflow, return 0 on success. */
-PyAPI_FUNC(int) _PyTime_FromTimespec(_PyTime_t *tp, struct timespec *ts);
-
-/* Convert a timestamp to a timespec structure (nanosecond resolution).
- tv_nsec is always positive.
- Raise an exception and return -1 on error, return 0 on success. */
-PyAPI_FUNC(int) _PyTime_AsTimespec(_PyTime_t t, struct timespec *ts);
-#endif
-
-/* Compute ticks * mul / div.
- The caller must ensure that ((div - 1) * mul) cannot overflow. */
-PyAPI_FUNC(_PyTime_t) _PyTime_MulDiv(_PyTime_t ticks,
- _PyTime_t mul,
- _PyTime_t div);
-
-/* Get the current time from the system clock.
-
- The function cannot fail. _PyTime_Init() ensures that the system clock
- works. */
-PyAPI_FUNC(_PyTime_t) _PyTime_GetSystemClock(void);
-
-/* Get the time of a monotonic clock, i.e. a clock that cannot go backwards.
- The clock is not affected by system clock updates. The reference point of
- the returned value is undefined, so that only the difference between the
- results of consecutive calls is valid.
-
- The function cannot fail. _PyTime_Init() ensures that a monotonic clock
- is available and works. */
-PyAPI_FUNC(_PyTime_t) _PyTime_GetMonotonicClock(void);
-
-
-/* Structure used by time.get_clock_info() */
-typedef struct {
- const char *implementation;
- int monotonic;
- int adjustable;
- double resolution;
-} _Py_clock_info_t;
-
-/* Get the current time from the system clock.
- * Fill clock information if info is not NULL.
- * Raise an exception and return -1 on error, return 0 on success.
- */
-PyAPI_FUNC(int) _PyTime_GetSystemClockWithInfo(
- _PyTime_t *t,
- _Py_clock_info_t *info);
-
-/* Get the time of a monotonic clock, i.e. a clock that cannot go backwards.
- The clock is not affected by system clock updates. The reference point of
- the returned value is undefined, so that only the difference between the
- results of consecutive calls is valid.
-
- Fill info (if set) with information of the function used to get the time.
-
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int) _PyTime_GetMonotonicClockWithInfo(
- _PyTime_t *t,
- _Py_clock_info_t *info);
-
-
-/* Initialize time.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int) _PyTime_Init(void);
-
-/* Converts a timestamp to the Gregorian time, using the local time zone.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int) _PyTime_localtime(time_t t, struct tm *tm);
-
-/* Converts a timestamp to the Gregorian time, assuming UTC.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int) _PyTime_gmtime(time_t t, struct tm *tm);
-
-/* Get the performance counter: clock with the highest available resolution to
- measure a short duration.
-
- The function cannot fail. _PyTime_Init() ensures that the system clock
- works. */
-PyAPI_FUNC(_PyTime_t) _PyTime_GetPerfCounter(void);
-
-/* Get the performance counter: clock with the highest available resolution to
- measure a short duration.
-
- Fill info (if set) with information of the function used to get the time.
-
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int) _PyTime_GetPerfCounterWithInfo(
- _PyTime_t *t,
- _Py_clock_info_t *info);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* Py_PYTIME_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/rangeobject.h b/EasyTrans/Include/rangeobject.h
deleted file mode 100644
index 7e4dc288..00000000
--- a/EasyTrans/Include/rangeobject.h
+++ /dev/null
@@ -1,27 +0,0 @@
-
-/* Range object interface */
-
-#ifndef Py_RANGEOBJECT_H
-#define Py_RANGEOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-A range object represents an integer range. This is an immutable object;
-a range cannot change its value after creation.
-
-Range objects behave like the corresponding tuple objects except that
-they are represented by a start, stop, and step datamembers.
-*/
-
-PyAPI_DATA(PyTypeObject) PyRange_Type;
-PyAPI_DATA(PyTypeObject) PyRangeIter_Type;
-PyAPI_DATA(PyTypeObject) PyLongRangeIter_Type;
-
-#define PyRange_Check(op) (Py_TYPE(op) == &PyRange_Type)
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_RANGEOBJECT_H */
diff --git a/EasyTrans/Include/setobject.h b/EasyTrans/Include/setobject.h
deleted file mode 100644
index fc0ea839..00000000
--- a/EasyTrans/Include/setobject.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Set object interface */
-
-#ifndef Py_SETOBJECT_H
-#define Py_SETOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-
-/* There are three kinds of entries in the table:
-
-1. Unused: key == NULL and hash == 0
-2. Dummy: key == dummy and hash == -1
-3. Active: key != NULL and key != dummy and hash != -1
-
-The hash field of Unused slots is always zero.
-
-The hash field of Dummy slots are set to -1
-meaning that dummy entries can be detected by
-either entry->key==dummy or by entry->hash==-1.
-*/
-
-#define PySet_MINSIZE 8
-
-typedef struct {
- PyObject *key;
- Py_hash_t hash; /* Cached hash code of the key */
-} setentry;
-
-/* The SetObject data structure is shared by set and frozenset objects.
-
-Invariant for sets:
- - hash is -1
-
-Invariants for frozensets:
- - data is immutable.
- - hash is the hash of the frozenset or -1 if not computed yet.
-
-*/
-
-typedef struct {
- PyObject_HEAD
-
- Py_ssize_t fill; /* Number active and dummy entries*/
- Py_ssize_t used; /* Number active entries */
-
- /* The table contains mask + 1 slots, and that's a power of 2.
- * We store the mask instead of the size because the mask is more
- * frequently needed.
- */
- Py_ssize_t mask;
-
- /* The table points to a fixed-size smalltable for small tables
- * or to additional malloc'ed memory for bigger tables.
- * The table pointer is never NULL which saves us from repeated
- * runtime null-tests.
- */
- setentry *table;
- Py_hash_t hash; /* Only used by frozenset objects */
- Py_ssize_t finger; /* Search finger for pop() */
-
- setentry smalltable[PySet_MINSIZE];
- PyObject *weakreflist; /* List of weak references */
-} PySetObject;
-
-#define PySet_GET_SIZE(so) (assert(PyAnySet_Check(so)),(((PySetObject *)(so))->used))
-
-PyAPI_DATA(PyObject *) _PySet_Dummy;
-
-PyAPI_FUNC(int) _PySet_NextEntry(PyObject *set, Py_ssize_t *pos, PyObject **key, Py_hash_t *hash);
-PyAPI_FUNC(int) _PySet_Update(PyObject *set, PyObject *iterable);
-PyAPI_FUNC(int) PySet_ClearFreeList(void);
-
-#endif /* Section excluded by Py_LIMITED_API */
-
-PyAPI_DATA(PyTypeObject) PySet_Type;
-PyAPI_DATA(PyTypeObject) PyFrozenSet_Type;
-PyAPI_DATA(PyTypeObject) PySetIter_Type;
-
-PyAPI_FUNC(PyObject *) PySet_New(PyObject *);
-PyAPI_FUNC(PyObject *) PyFrozenSet_New(PyObject *);
-
-PyAPI_FUNC(int) PySet_Add(PyObject *set, PyObject *key);
-PyAPI_FUNC(int) PySet_Clear(PyObject *set);
-PyAPI_FUNC(int) PySet_Contains(PyObject *anyset, PyObject *key);
-PyAPI_FUNC(int) PySet_Discard(PyObject *set, PyObject *key);
-PyAPI_FUNC(PyObject *) PySet_Pop(PyObject *set);
-PyAPI_FUNC(Py_ssize_t) PySet_Size(PyObject *anyset);
-
-#define PyFrozenSet_CheckExact(ob) (Py_TYPE(ob) == &PyFrozenSet_Type)
-#define PyAnySet_CheckExact(ob) \
- (Py_TYPE(ob) == &PySet_Type || Py_TYPE(ob) == &PyFrozenSet_Type)
-#define PyAnySet_Check(ob) \
- (Py_TYPE(ob) == &PySet_Type || Py_TYPE(ob) == &PyFrozenSet_Type || \
- PyType_IsSubtype(Py_TYPE(ob), &PySet_Type) || \
- PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type))
-#define PySet_Check(ob) \
- (Py_TYPE(ob) == &PySet_Type || \
- PyType_IsSubtype(Py_TYPE(ob), &PySet_Type))
-#define PyFrozenSet_Check(ob) \
- (Py_TYPE(ob) == &PyFrozenSet_Type || \
- PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type))
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_SETOBJECT_H */
diff --git a/EasyTrans/Include/sliceobject.h b/EasyTrans/Include/sliceobject.h
deleted file mode 100644
index c238b099..00000000
--- a/EasyTrans/Include/sliceobject.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef Py_SLICEOBJECT_H
-#define Py_SLICEOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* The unique ellipsis object "..." */
-
-PyAPI_DATA(PyObject) _Py_EllipsisObject; /* Don't use this directly */
-
-#define Py_Ellipsis (&_Py_EllipsisObject)
-
-/* Slice object interface */
-
-/*
-
-A slice object containing start, stop, and step data members (the
-names are from range). After much talk with Guido, it was decided to
-let these be any arbitrary python type. Py_None stands for omitted values.
-*/
-#ifndef Py_LIMITED_API
-typedef struct {
- PyObject_HEAD
- PyObject *start, *stop, *step; /* not NULL */
-} PySliceObject;
-#endif
-
-PyAPI_DATA(PyTypeObject) PySlice_Type;
-PyAPI_DATA(PyTypeObject) PyEllipsis_Type;
-
-#define PySlice_Check(op) (Py_TYPE(op) == &PySlice_Type)
-
-PyAPI_FUNC(PyObject *) PySlice_New(PyObject* start, PyObject* stop,
- PyObject* step);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PySlice_FromIndices(Py_ssize_t start, Py_ssize_t stop);
-PyAPI_FUNC(int) _PySlice_GetLongIndices(PySliceObject *self, PyObject *length,
- PyObject **start_ptr, PyObject **stop_ptr,
- PyObject **step_ptr);
-#endif
-PyAPI_FUNC(int) PySlice_GetIndices(PyObject *r, Py_ssize_t length,
- Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step);
-PyAPI_FUNC(int) PySlice_GetIndicesEx(PyObject *r, Py_ssize_t length,
- Py_ssize_t *start, Py_ssize_t *stop,
- Py_ssize_t *step, Py_ssize_t *slicelength) Py_DEPRECATED(3.7);
-
-#if !defined(Py_LIMITED_API) || (Py_LIMITED_API+0 >= 0x03050400 && Py_LIMITED_API+0 < 0x03060000) || Py_LIMITED_API+0 >= 0x03060100
-#define PySlice_GetIndicesEx(slice, length, start, stop, step, slicelen) ( \
- PySlice_Unpack((slice), (start), (stop), (step)) < 0 ? \
- ((*(slicelen) = 0), -1) : \
- ((*(slicelen) = PySlice_AdjustIndices((length), (start), (stop), *(step))), \
- 0))
-PyAPI_FUNC(int) PySlice_Unpack(PyObject *slice,
- Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step);
-PyAPI_FUNC(Py_ssize_t) PySlice_AdjustIndices(Py_ssize_t length,
- Py_ssize_t *start, Py_ssize_t *stop,
- Py_ssize_t step);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_SLICEOBJECT_H */
diff --git a/EasyTrans/Include/structmember.h b/EasyTrans/Include/structmember.h
deleted file mode 100644
index b54f7081..00000000
--- a/EasyTrans/Include/structmember.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef Py_STRUCTMEMBER_H
-#define Py_STRUCTMEMBER_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Interface to map C struct members to Python object attributes */
-
-#include /* For offsetof */
-
-/* An array of PyMemberDef structures defines the name, type and offset
- of selected members of a C structure. These can be read by
- PyMember_GetOne() and set by PyMember_SetOne() (except if their READONLY
- flag is set). The array must be terminated with an entry whose name
- pointer is NULL. */
-
-typedef struct PyMemberDef {
- const char *name;
- int type;
- Py_ssize_t offset;
- int flags;
- const char *doc;
-} PyMemberDef;
-
-/* Types */
-#define T_SHORT 0
-#define T_INT 1
-#define T_LONG 2
-#define T_FLOAT 3
-#define T_DOUBLE 4
-#define T_STRING 5
-#define T_OBJECT 6
-/* XXX the ordering here is weird for binary compatibility */
-#define T_CHAR 7 /* 1-character string */
-#define T_BYTE 8 /* 8-bit signed int */
-/* unsigned variants: */
-#define T_UBYTE 9
-#define T_USHORT 10
-#define T_UINT 11
-#define T_ULONG 12
-
-/* Added by Jack: strings contained in the structure */
-#define T_STRING_INPLACE 13
-
-/* Added by Lillo: bools contained in the structure (assumed char) */
-#define T_BOOL 14
-
-#define T_OBJECT_EX 16 /* Like T_OBJECT, but raises AttributeError
- when the value is NULL, instead of
- converting to None. */
-#define T_LONGLONG 17
-#define T_ULONGLONG 18
-
-#define T_PYSSIZET 19 /* Py_ssize_t */
-#define T_NONE 20 /* Value is always None */
-
-
-/* Flags */
-#define READONLY 1
-#define READ_RESTRICTED 2
-#define PY_WRITE_RESTRICTED 4
-#define RESTRICTED (READ_RESTRICTED | PY_WRITE_RESTRICTED)
-
-
-/* Current API, use this */
-PyAPI_FUNC(PyObject *) PyMember_GetOne(const char *, struct PyMemberDef *);
-PyAPI_FUNC(int) PyMember_SetOne(char *, struct PyMemberDef *, PyObject *);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_STRUCTMEMBER_H */
diff --git a/EasyTrans/Include/structseq.h b/EasyTrans/Include/structseq.h
deleted file mode 100644
index e5e5d5c5..00000000
--- a/EasyTrans/Include/structseq.h
+++ /dev/null
@@ -1,49 +0,0 @@
-
-/* Named tuple object interface */
-
-#ifndef Py_STRUCTSEQ_H
-#define Py_STRUCTSEQ_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct PyStructSequence_Field {
- const char *name;
- const char *doc;
-} PyStructSequence_Field;
-
-typedef struct PyStructSequence_Desc {
- const char *name;
- const char *doc;
- struct PyStructSequence_Field *fields;
- int n_in_sequence;
-} PyStructSequence_Desc;
-
-extern char* PyStructSequence_UnnamedField;
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) PyStructSequence_InitType(PyTypeObject *type,
- PyStructSequence_Desc *desc);
-PyAPI_FUNC(int) PyStructSequence_InitType2(PyTypeObject *type,
- PyStructSequence_Desc *desc);
-#endif
-PyAPI_FUNC(PyTypeObject*) PyStructSequence_NewType(PyStructSequence_Desc *desc);
-
-PyAPI_FUNC(PyObject *) PyStructSequence_New(PyTypeObject* type);
-
-#ifndef Py_LIMITED_API
-typedef PyTupleObject PyStructSequence;
-
-/* Macro, *only* to be used to fill in brand new objects */
-#define PyStructSequence_SET_ITEM(op, i, v) PyTuple_SET_ITEM(op, i, v)
-
-#define PyStructSequence_GET_ITEM(op, i) PyTuple_GET_ITEM(op, i)
-#endif
-
-PyAPI_FUNC(void) PyStructSequence_SetItem(PyObject*, Py_ssize_t, PyObject*);
-PyAPI_FUNC(PyObject*) PyStructSequence_GetItem(PyObject*, Py_ssize_t);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_STRUCTSEQ_H */
diff --git a/EasyTrans/Include/symtable.h b/EasyTrans/Include/symtable.h
deleted file mode 100644
index 007f88db..00000000
--- a/EasyTrans/Include/symtable.h
+++ /dev/null
@@ -1,118 +0,0 @@
-#ifndef Py_LIMITED_API
-#ifndef Py_SYMTABLE_H
-#define Py_SYMTABLE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* XXX(ncoghlan): This is a weird mix of public names and interpreter internal
- * names.
- */
-
-typedef enum _block_type { FunctionBlock, ClassBlock, ModuleBlock }
- _Py_block_ty;
-
-struct _symtable_entry;
-
-struct symtable {
- PyObject *st_filename; /* name of file being compiled,
- decoded from the filesystem encoding */
- struct _symtable_entry *st_cur; /* current symbol table entry */
- struct _symtable_entry *st_top; /* symbol table entry for module */
- PyObject *st_blocks; /* dict: map AST node addresses
- * to symbol table entries */
- PyObject *st_stack; /* list: stack of namespace info */
- PyObject *st_global; /* borrowed ref to st_top->ste_symbols */
- int st_nblocks; /* number of blocks used. kept for
- consistency with the corresponding
- compiler structure */
- PyObject *st_private; /* name of current class or NULL */
- PyFutureFeatures *st_future; /* module's future features that affect
- the symbol table */
- int recursion_depth; /* current recursion depth */
- int recursion_limit; /* recursion limit */
-};
-
-typedef struct _symtable_entry {
- PyObject_HEAD
- PyObject *ste_id; /* int: key in ste_table->st_blocks */
- PyObject *ste_symbols; /* dict: variable names to flags */
- PyObject *ste_name; /* string: name of current block */
- PyObject *ste_varnames; /* list of function parameters */
- PyObject *ste_children; /* list of child blocks */
- PyObject *ste_directives;/* locations of global and nonlocal statements */
- _Py_block_ty ste_type; /* module, class, or function */
- int ste_nested; /* true if block is nested */
- unsigned ste_free : 1; /* true if block has free variables */
- unsigned ste_child_free : 1; /* true if a child block has free vars,
- including free refs to globals */
- unsigned ste_generator : 1; /* true if namespace is a generator */
- unsigned ste_coroutine : 1; /* true if namespace is a coroutine */
- unsigned ste_varargs : 1; /* true if block has varargs */
- unsigned ste_varkeywords : 1; /* true if block has varkeywords */
- unsigned ste_returns_value : 1; /* true if namespace uses return with
- an argument */
- unsigned ste_needs_class_closure : 1; /* for class scopes, true if a
- closure over __class__
- should be created */
- int ste_lineno; /* first line of block */
- int ste_col_offset; /* offset of first line of block */
- int ste_opt_lineno; /* lineno of last exec or import * */
- int ste_opt_col_offset; /* offset of last exec or import * */
- struct symtable *ste_table;
-} PySTEntryObject;
-
-PyAPI_DATA(PyTypeObject) PySTEntry_Type;
-
-#define PySTEntry_Check(op) (Py_TYPE(op) == &PySTEntry_Type)
-
-PyAPI_FUNC(int) PyST_GetScope(PySTEntryObject *, PyObject *);
-
-PyAPI_FUNC(struct symtable *) PySymtable_Build(
- mod_ty mod,
- const char *filename, /* decoded from the filesystem encoding */
- PyFutureFeatures *future);
-PyAPI_FUNC(struct symtable *) PySymtable_BuildObject(
- mod_ty mod,
- PyObject *filename,
- PyFutureFeatures *future);
-PyAPI_FUNC(PySTEntryObject *) PySymtable_Lookup(struct symtable *, void *);
-
-PyAPI_FUNC(void) PySymtable_Free(struct symtable *);
-
-/* Flags for def-use information */
-
-#define DEF_GLOBAL 1 /* global stmt */
-#define DEF_LOCAL 2 /* assignment in code block */
-#define DEF_PARAM 2<<1 /* formal parameter */
-#define DEF_NONLOCAL 2<<2 /* nonlocal stmt */
-#define USE 2<<3 /* name is used */
-#define DEF_FREE 2<<4 /* name used but not defined in nested block */
-#define DEF_FREE_CLASS 2<<5 /* free variable from class's method */
-#define DEF_IMPORT 2<<6 /* assignment occurred via import */
-#define DEF_ANNOT 2<<7 /* this name is annotated */
-
-#define DEF_BOUND (DEF_LOCAL | DEF_PARAM | DEF_IMPORT)
-
-/* GLOBAL_EXPLICIT and GLOBAL_IMPLICIT are used internally by the symbol
- table. GLOBAL is returned from PyST_GetScope() for either of them.
- It is stored in ste_symbols at bits 12-15.
-*/
-#define SCOPE_OFFSET 11
-#define SCOPE_MASK (DEF_GLOBAL | DEF_LOCAL | DEF_PARAM | DEF_NONLOCAL)
-
-#define LOCAL 1
-#define GLOBAL_EXPLICIT 2
-#define GLOBAL_IMPLICIT 3
-#define FREE 4
-#define CELL 5
-
-#define GENERATOR 1
-#define GENERATOR_EXPRESSION 2
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_SYMTABLE_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/sysmodule.h b/EasyTrans/Include/sysmodule.h
deleted file mode 100644
index 719ecfcf..00000000
--- a/EasyTrans/Include/sysmodule.h
+++ /dev/null
@@ -1,48 +0,0 @@
-
-/* System module interface */
-
-#ifndef Py_SYSMODULE_H
-#define Py_SYSMODULE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(PyObject *) PySys_GetObject(const char *);
-PyAPI_FUNC(int) PySys_SetObject(const char *, PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PySys_GetObjectId(_Py_Identifier *key);
-PyAPI_FUNC(int) _PySys_SetObjectId(_Py_Identifier *key, PyObject *);
-#endif
-
-PyAPI_FUNC(void) PySys_SetArgv(int, wchar_t **);
-PyAPI_FUNC(void) PySys_SetArgvEx(int, wchar_t **, int);
-PyAPI_FUNC(void) PySys_SetPath(const wchar_t *);
-
-PyAPI_FUNC(void) PySys_WriteStdout(const char *format, ...)
- Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
-PyAPI_FUNC(void) PySys_WriteStderr(const char *format, ...)
- Py_GCC_ATTRIBUTE((format(printf, 1, 2)));
-PyAPI_FUNC(void) PySys_FormatStdout(const char *format, ...);
-PyAPI_FUNC(void) PySys_FormatStderr(const char *format, ...);
-
-PyAPI_FUNC(void) PySys_ResetWarnOptions(void);
-PyAPI_FUNC(void) PySys_AddWarnOption(const wchar_t *);
-PyAPI_FUNC(void) PySys_AddWarnOptionUnicode(PyObject *);
-PyAPI_FUNC(int) PySys_HasWarnOptions(void);
-
-PyAPI_FUNC(void) PySys_AddXOption(const wchar_t *);
-PyAPI_FUNC(PyObject *) PySys_GetXOptions(void);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(size_t) _PySys_GetSizeOf(PyObject *);
-#endif
-
-#ifdef Py_BUILD_CORE
-PyAPI_FUNC(int) _PySys_AddXOptionWithError(const wchar_t *s);
-PyAPI_FUNC(int) _PySys_AddWarnOptionWithError(PyObject *option);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_SYSMODULE_H */
diff --git a/EasyTrans/Include/token.h b/EasyTrans/Include/token.h
deleted file mode 100644
index cd1cd00f..00000000
--- a/EasyTrans/Include/token.h
+++ /dev/null
@@ -1,92 +0,0 @@
-
-/* Token types */
-#ifndef Py_LIMITED_API
-#ifndef Py_TOKEN_H
-#define Py_TOKEN_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#undef TILDE /* Prevent clash of our definition with system macro. Ex AIX, ioctl.h */
-
-#define ENDMARKER 0
-#define NAME 1
-#define NUMBER 2
-#define STRING 3
-#define NEWLINE 4
-#define INDENT 5
-#define DEDENT 6
-#define LPAR 7
-#define RPAR 8
-#define LSQB 9
-#define RSQB 10
-#define COLON 11
-#define COMMA 12
-#define SEMI 13
-#define PLUS 14
-#define MINUS 15
-#define STAR 16
-#define SLASH 17
-#define VBAR 18
-#define AMPER 19
-#define LESS 20
-#define GREATER 21
-#define EQUAL 22
-#define DOT 23
-#define PERCENT 24
-#define LBRACE 25
-#define RBRACE 26
-#define EQEQUAL 27
-#define NOTEQUAL 28
-#define LESSEQUAL 29
-#define GREATEREQUAL 30
-#define TILDE 31
-#define CIRCUMFLEX 32
-#define LEFTSHIFT 33
-#define RIGHTSHIFT 34
-#define DOUBLESTAR 35
-#define PLUSEQUAL 36
-#define MINEQUAL 37
-#define STAREQUAL 38
-#define SLASHEQUAL 39
-#define PERCENTEQUAL 40
-#define AMPEREQUAL 41
-#define VBAREQUAL 42
-#define CIRCUMFLEXEQUAL 43
-#define LEFTSHIFTEQUAL 44
-#define RIGHTSHIFTEQUAL 45
-#define DOUBLESTAREQUAL 46
-#define DOUBLESLASH 47
-#define DOUBLESLASHEQUAL 48
-#define AT 49
-#define ATEQUAL 50
-#define RARROW 51
-#define ELLIPSIS 52
-/* Don't forget to update the table _PyParser_TokenNames in tokenizer.c! */
-#define OP 53
-#define ERRORTOKEN 54
-/* These aren't used by the C tokenizer but are needed for tokenize.py */
-#define COMMENT 55
-#define NL 56
-#define ENCODING 57
-#define N_TOKENS 58
-
-/* Special definitions for cooperation with parser */
-
-#define NT_OFFSET 256
-
-#define ISTERMINAL(x) ((x) < NT_OFFSET)
-#define ISNONTERMINAL(x) ((x) >= NT_OFFSET)
-#define ISEOF(x) ((x) == ENDMARKER)
-
-
-PyAPI_DATA(const char *) _PyParser_TokenNames[]; /* Token names */
-PyAPI_FUNC(int) PyToken_OneChar(int);
-PyAPI_FUNC(int) PyToken_TwoChars(int, int);
-PyAPI_FUNC(int) PyToken_ThreeChars(int, int, int);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_TOKEN_H */
-#endif /* Py_LIMITED_API */
diff --git a/EasyTrans/Include/traceback.h b/EasyTrans/Include/traceback.h
deleted file mode 100644
index b5874100..00000000
--- a/EasyTrans/Include/traceback.h
+++ /dev/null
@@ -1,119 +0,0 @@
-
-#ifndef Py_TRACEBACK_H
-#define Py_TRACEBACK_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "pystate.h"
-
-struct _frame;
-
-/* Traceback interface */
-#ifndef Py_LIMITED_API
-typedef struct _traceback {
- PyObject_HEAD
- struct _traceback *tb_next;
- struct _frame *tb_frame;
- int tb_lasti;
- int tb_lineno;
-} PyTracebackObject;
-#endif
-
-PyAPI_FUNC(int) PyTraceBack_Here(struct _frame *);
-PyAPI_FUNC(int) PyTraceBack_Print(PyObject *, PyObject *);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _Py_DisplaySourceLine(PyObject *, PyObject *, int, int);
-PyAPI_FUNC(void) _PyTraceback_Add(const char *, const char *, int);
-#endif
-
-/* Reveal traceback type so we can typecheck traceback objects */
-PyAPI_DATA(PyTypeObject) PyTraceBack_Type;
-#define PyTraceBack_Check(v) (Py_TYPE(v) == &PyTraceBack_Type)
-
-#ifndef Py_LIMITED_API
-/* Write the Python traceback into the file 'fd'. For example:
-
- Traceback (most recent call first):
- File "xxx", line xxx in
- File "xxx", line xxx in
- ...
- File "xxx", line xxx in
-
- This function is written for debug purpose only, to dump the traceback in
- the worst case: after a segmentation fault, at fatal error, etc. That's why,
- it is very limited. Strings are truncated to 100 characters and encoded to
- ASCII with backslashreplace. It doesn't write the source code, only the
- function name, filename and line number of each frame. Write only the first
- 100 frames: if the traceback is truncated, write the line " ...".
-
- This function is signal safe. */
-
-PyAPI_FUNC(void) _Py_DumpTraceback(
- int fd,
- PyThreadState *tstate);
-
-/* Write the traceback of all threads into the file 'fd'. current_thread can be
- NULL.
-
- Return NULL on success, or an error message on error.
-
- This function is written for debug purpose only. It calls
- _Py_DumpTraceback() for each thread, and so has the same limitations. It
- only write the traceback of the first 100 threads: write "..." if there are
- more threads.
-
- If current_tstate is NULL, the function tries to get the Python thread state
- of the current thread. It is not an error if the function is unable to get
- the current Python thread state.
-
- If interp is NULL, the function tries to get the interpreter state from
- the current Python thread state, or from
- _PyGILState_GetInterpreterStateUnsafe() in last resort.
-
- It is better to pass NULL to interp and current_tstate, the function tries
- different options to retrieve these informations.
-
- This function is signal safe. */
-
-PyAPI_FUNC(const char*) _Py_DumpTracebackThreads(
- int fd,
- PyInterpreterState *interp,
- PyThreadState *current_tstate);
-#endif /* !Py_LIMITED_API */
-
-#ifndef Py_LIMITED_API
-
-/* Write a Unicode object into the file descriptor fd. Encode the string to
- ASCII using the backslashreplace error handler.
-
- Do nothing if text is not a Unicode object. The function accepts Unicode
- string which is not ready (PyUnicode_WCHAR_KIND).
-
- This function is signal safe. */
-PyAPI_FUNC(void) _Py_DumpASCII(int fd, PyObject *text);
-
-/* Format an integer as decimal into the file descriptor fd.
-
- This function is signal safe. */
-PyAPI_FUNC(void) _Py_DumpDecimal(
- int fd,
- unsigned long value);
-
-/* Format an integer as hexadecimal into the file descriptor fd with at least
- width digits.
-
- The maximum width is sizeof(unsigned long)*2 digits.
-
- This function is signal safe. */
-PyAPI_FUNC(void) _Py_DumpHexadecimal(
- int fd,
- unsigned long value,
- Py_ssize_t width);
-
-#endif /* !Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_TRACEBACK_H */
diff --git a/EasyTrans/Include/tupleobject.h b/EasyTrans/Include/tupleobject.h
deleted file mode 100644
index 72a7d8d5..00000000
--- a/EasyTrans/Include/tupleobject.h
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/* Tuple object interface */
-
-#ifndef Py_TUPLEOBJECT_H
-#define Py_TUPLEOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-Another generally useful object type is a tuple of object pointers.
-For Python, this is an immutable type. C code can change the tuple items
-(but not their number), and even use tuples as general-purpose arrays of
-object references, but in general only brand new tuples should be mutated,
-not ones that might already have been exposed to Python code.
-
-*** WARNING *** PyTuple_SetItem does not increment the new item's reference
-count, but does decrement the reference count of the item it replaces,
-if not nil. It does *decrement* the reference count if it is *not*
-inserted in the tuple. Similarly, PyTuple_GetItem does not increment the
-returned item's reference count.
-*/
-
-#ifndef Py_LIMITED_API
-typedef struct {
- PyObject_VAR_HEAD
- PyObject *ob_item[1];
-
- /* ob_item contains space for 'ob_size' elements.
- * Items must normally not be NULL, except during construction when
- * the tuple is not yet visible outside the function that builds it.
- */
-} PyTupleObject;
-#endif
-
-PyAPI_DATA(PyTypeObject) PyTuple_Type;
-PyAPI_DATA(PyTypeObject) PyTupleIter_Type;
-
-#define PyTuple_Check(op) \
- PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TUPLE_SUBCLASS)
-#define PyTuple_CheckExact(op) (Py_TYPE(op) == &PyTuple_Type)
-
-PyAPI_FUNC(PyObject *) PyTuple_New(Py_ssize_t size);
-PyAPI_FUNC(Py_ssize_t) PyTuple_Size(PyObject *);
-PyAPI_FUNC(PyObject *) PyTuple_GetItem(PyObject *, Py_ssize_t);
-PyAPI_FUNC(int) PyTuple_SetItem(PyObject *, Py_ssize_t, PyObject *);
-PyAPI_FUNC(PyObject *) PyTuple_GetSlice(PyObject *, Py_ssize_t, Py_ssize_t);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyTuple_Resize(PyObject **, Py_ssize_t);
-#endif
-PyAPI_FUNC(PyObject *) PyTuple_Pack(Py_ssize_t, ...);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyTuple_MaybeUntrack(PyObject *);
-#endif
-
-/* Macro, trading safety for speed */
-#ifndef Py_LIMITED_API
-#define PyTuple_GET_ITEM(op, i) (((PyTupleObject *)(op))->ob_item[i])
-#define PyTuple_GET_SIZE(op) (assert(PyTuple_Check(op)),Py_SIZE(op))
-
-/* Macro, *only* to be used to fill in brand new tuples */
-#define PyTuple_SET_ITEM(op, i, v) (((PyTupleObject *)(op))->ob_item[i] = v)
-#endif
-
-PyAPI_FUNC(int) PyTuple_ClearFreeList(void);
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _PyTuple_DebugMallocStats(FILE *out);
-#endif /* Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_TUPLEOBJECT_H */
diff --git a/EasyTrans/Include/typeslots.h b/EasyTrans/Include/typeslots.h
deleted file mode 100644
index 0ce6a377..00000000
--- a/EasyTrans/Include/typeslots.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Do not renumber the file; these numbers are part of the stable ABI. */
-/* Disabled, see #10181 */
-#undef Py_bf_getbuffer
-#undef Py_bf_releasebuffer
-#define Py_mp_ass_subscript 3
-#define Py_mp_length 4
-#define Py_mp_subscript 5
-#define Py_nb_absolute 6
-#define Py_nb_add 7
-#define Py_nb_and 8
-#define Py_nb_bool 9
-#define Py_nb_divmod 10
-#define Py_nb_float 11
-#define Py_nb_floor_divide 12
-#define Py_nb_index 13
-#define Py_nb_inplace_add 14
-#define Py_nb_inplace_and 15
-#define Py_nb_inplace_floor_divide 16
-#define Py_nb_inplace_lshift 17
-#define Py_nb_inplace_multiply 18
-#define Py_nb_inplace_or 19
-#define Py_nb_inplace_power 20
-#define Py_nb_inplace_remainder 21
-#define Py_nb_inplace_rshift 22
-#define Py_nb_inplace_subtract 23
-#define Py_nb_inplace_true_divide 24
-#define Py_nb_inplace_xor 25
-#define Py_nb_int 26
-#define Py_nb_invert 27
-#define Py_nb_lshift 28
-#define Py_nb_multiply 29
-#define Py_nb_negative 30
-#define Py_nb_or 31
-#define Py_nb_positive 32
-#define Py_nb_power 33
-#define Py_nb_remainder 34
-#define Py_nb_rshift 35
-#define Py_nb_subtract 36
-#define Py_nb_true_divide 37
-#define Py_nb_xor 38
-#define Py_sq_ass_item 39
-#define Py_sq_concat 40
-#define Py_sq_contains 41
-#define Py_sq_inplace_concat 42
-#define Py_sq_inplace_repeat 43
-#define Py_sq_item 44
-#define Py_sq_length 45
-#define Py_sq_repeat 46
-#define Py_tp_alloc 47
-#define Py_tp_base 48
-#define Py_tp_bases 49
-#define Py_tp_call 50
-#define Py_tp_clear 51
-#define Py_tp_dealloc 52
-#define Py_tp_del 53
-#define Py_tp_descr_get 54
-#define Py_tp_descr_set 55
-#define Py_tp_doc 56
-#define Py_tp_getattr 57
-#define Py_tp_getattro 58
-#define Py_tp_hash 59
-#define Py_tp_init 60
-#define Py_tp_is_gc 61
-#define Py_tp_iter 62
-#define Py_tp_iternext 63
-#define Py_tp_methods 64
-#define Py_tp_new 65
-#define Py_tp_repr 66
-#define Py_tp_richcompare 67
-#define Py_tp_setattr 68
-#define Py_tp_setattro 69
-#define Py_tp_str 70
-#define Py_tp_traverse 71
-#define Py_tp_members 72
-#define Py_tp_getset 73
-#define Py_tp_free 74
-#define Py_nb_matrix_multiply 75
-#define Py_nb_inplace_matrix_multiply 76
-#define Py_am_await 77
-#define Py_am_aiter 78
-#define Py_am_anext 79
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
-/* New in 3.5 */
-#define Py_tp_finalize 80
-#endif
diff --git a/EasyTrans/Include/ucnhash.h b/EasyTrans/Include/ucnhash.h
deleted file mode 100644
index 45362e99..00000000
--- a/EasyTrans/Include/ucnhash.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Unicode name database interface */
-#ifndef Py_LIMITED_API
-#ifndef Py_UCNHASH_H
-#define Py_UCNHASH_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* revised ucnhash CAPI interface (exported through a "wrapper") */
-
-#define PyUnicodeData_CAPSULE_NAME "unicodedata.ucnhash_CAPI"
-
-typedef struct {
-
- /* Size of this struct */
- int size;
-
- /* Get name for a given character code. Returns non-zero if
- success, zero if not. Does not set Python exceptions.
- If self is NULL, data come from the default version of the database.
- If it is not NULL, it should be a unicodedata.ucd_X_Y_Z object */
- int (*getname)(PyObject *self, Py_UCS4 code, char* buffer, int buflen,
- int with_alias_and_seq);
-
- /* Get character code for a given name. Same error handling
- as for getname. */
- int (*getcode)(PyObject *self, const char* name, int namelen, Py_UCS4* code,
- int with_named_seq);
-
-} _PyUnicode_Name_CAPI;
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_UCNHASH_H */
-#endif /* !Py_LIMITED_API */
diff --git a/EasyTrans/Include/unicodeobject.h b/EasyTrans/Include/unicodeobject.h
deleted file mode 100644
index 45998a13..00000000
--- a/EasyTrans/Include/unicodeobject.h
+++ /dev/null
@@ -1,2334 +0,0 @@
-#ifndef Py_UNICODEOBJECT_H
-#define Py_UNICODEOBJECT_H
-
-#include
-
-/*
-
-Unicode implementation based on original code by Fredrik Lundh,
-modified by Marc-Andre Lemburg (mal@lemburg.com) according to the
-Unicode Integration Proposal. (See
-http://www.egenix.com/files/python/unicode-proposal.txt).
-
-Copyright (c) Corporation for National Research Initiatives.
-
-
- Original header:
- --------------------------------------------------------------------
-
- * Yet another Unicode string type for Python. This type supports the
- * 16-bit Basic Multilingual Plane (BMP) only.
- *
- * Written by Fredrik Lundh, January 1999.
- *
- * Copyright (c) 1999 by Secret Labs AB.
- * Copyright (c) 1999 by Fredrik Lundh.
- *
- * fredrik@pythonware.com
- * http://www.pythonware.com
- *
- * --------------------------------------------------------------------
- * This Unicode String Type is
- *
- * Copyright (c) 1999 by Secret Labs AB
- * Copyright (c) 1999 by Fredrik Lundh
- *
- * By obtaining, using, and/or copying this software and/or its
- * associated documentation, you agree that you have read, understood,
- * and will comply with the following terms and conditions:
- *
- * Permission to use, copy, modify, and distribute this software and its
- * associated documentation for any purpose and without fee is hereby
- * granted, provided that the above copyright notice appears in all
- * copies, and that both that copyright notice and this permission notice
- * appear in supporting documentation, and that the name of Secret Labs
- * AB or the author not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission.
- *
- * SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO
- * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- * -------------------------------------------------------------------- */
-
-#include
-
-/* === Internal API ======================================================= */
-
-/* --- Internal Unicode Format -------------------------------------------- */
-
-/* Python 3.x requires unicode */
-#define Py_USING_UNICODE
-
-#ifndef SIZEOF_WCHAR_T
-#error Must define SIZEOF_WCHAR_T
-#endif
-
-#define Py_UNICODE_SIZE SIZEOF_WCHAR_T
-
-/* If wchar_t can be used for UCS-4 storage, set Py_UNICODE_WIDE.
- Otherwise, Unicode strings are stored as UCS-2 (with limited support
- for UTF-16) */
-
-#if Py_UNICODE_SIZE >= 4
-#define Py_UNICODE_WIDE
-#endif
-
-/* Set these flags if the platform has "wchar.h" and the
- wchar_t type is a 16-bit unsigned type */
-/* #define HAVE_WCHAR_H */
-/* #define HAVE_USABLE_WCHAR_T */
-
-/* Py_UNICODE was the native Unicode storage format (code unit) used by
- Python and represents a single Unicode element in the Unicode type.
- With PEP 393, Py_UNICODE is deprecated and replaced with a
- typedef to wchar_t. */
-
-#ifndef Py_LIMITED_API
-#define PY_UNICODE_TYPE wchar_t
-typedef wchar_t Py_UNICODE /* Py_DEPRECATED(3.3) */;
-#endif
-
-/* If the compiler provides a wchar_t type we try to support it
- through the interface functions PyUnicode_FromWideChar(),
- PyUnicode_AsWideChar() and PyUnicode_AsWideCharString(). */
-
-#ifdef HAVE_USABLE_WCHAR_T
-# ifndef HAVE_WCHAR_H
-# define HAVE_WCHAR_H
-# endif
-#endif
-
-#ifdef HAVE_WCHAR_H
-# include
-#endif
-
-/* Py_UCS4 and Py_UCS2 are typedefs for the respective
- unicode representations. */
-typedef uint32_t Py_UCS4;
-typedef uint16_t Py_UCS2;
-typedef uint8_t Py_UCS1;
-
-/* --- Internal Unicode Operations ---------------------------------------- */
-
-/* Since splitting on whitespace is an important use case, and
- whitespace in most situations is solely ASCII whitespace, we
- optimize for the common case by using a quick look-up table
- _Py_ascii_whitespace (see below) with an inlined check.
-
- */
-#ifndef Py_LIMITED_API
-#define Py_UNICODE_ISSPACE(ch) \
- ((ch) < 128U ? _Py_ascii_whitespace[(ch)] : _PyUnicode_IsWhitespace(ch))
-
-#define Py_UNICODE_ISLOWER(ch) _PyUnicode_IsLowercase(ch)
-#define Py_UNICODE_ISUPPER(ch) _PyUnicode_IsUppercase(ch)
-#define Py_UNICODE_ISTITLE(ch) _PyUnicode_IsTitlecase(ch)
-#define Py_UNICODE_ISLINEBREAK(ch) _PyUnicode_IsLinebreak(ch)
-
-#define Py_UNICODE_TOLOWER(ch) _PyUnicode_ToLowercase(ch)
-#define Py_UNICODE_TOUPPER(ch) _PyUnicode_ToUppercase(ch)
-#define Py_UNICODE_TOTITLE(ch) _PyUnicode_ToTitlecase(ch)
-
-#define Py_UNICODE_ISDECIMAL(ch) _PyUnicode_IsDecimalDigit(ch)
-#define Py_UNICODE_ISDIGIT(ch) _PyUnicode_IsDigit(ch)
-#define Py_UNICODE_ISNUMERIC(ch) _PyUnicode_IsNumeric(ch)
-#define Py_UNICODE_ISPRINTABLE(ch) _PyUnicode_IsPrintable(ch)
-
-#define Py_UNICODE_TODECIMAL(ch) _PyUnicode_ToDecimalDigit(ch)
-#define Py_UNICODE_TODIGIT(ch) _PyUnicode_ToDigit(ch)
-#define Py_UNICODE_TONUMERIC(ch) _PyUnicode_ToNumeric(ch)
-
-#define Py_UNICODE_ISALPHA(ch) _PyUnicode_IsAlpha(ch)
-
-#define Py_UNICODE_ISALNUM(ch) \
- (Py_UNICODE_ISALPHA(ch) || \
- Py_UNICODE_ISDECIMAL(ch) || \
- Py_UNICODE_ISDIGIT(ch) || \
- Py_UNICODE_ISNUMERIC(ch))
-
-#define Py_UNICODE_COPY(target, source, length) \
- memcpy((target), (source), (length)*sizeof(Py_UNICODE))
-
-#define Py_UNICODE_FILL(target, value, length) \
- do {Py_ssize_t i_; Py_UNICODE *t_ = (target); Py_UNICODE v_ = (value);\
- for (i_ = 0; i_ < (length); i_++) t_[i_] = v_;\
- } while (0)
-
-/* macros to work with surrogates */
-#define Py_UNICODE_IS_SURROGATE(ch) (0xD800 <= (ch) && (ch) <= 0xDFFF)
-#define Py_UNICODE_IS_HIGH_SURROGATE(ch) (0xD800 <= (ch) && (ch) <= 0xDBFF)
-#define Py_UNICODE_IS_LOW_SURROGATE(ch) (0xDC00 <= (ch) && (ch) <= 0xDFFF)
-/* Join two surrogate characters and return a single Py_UCS4 value. */
-#define Py_UNICODE_JOIN_SURROGATES(high, low) \
- (((((Py_UCS4)(high) & 0x03FF) << 10) | \
- ((Py_UCS4)(low) & 0x03FF)) + 0x10000)
-/* high surrogate = top 10 bits added to D800 */
-#define Py_UNICODE_HIGH_SURROGATE(ch) (0xD800 - (0x10000 >> 10) + ((ch) >> 10))
-/* low surrogate = bottom 10 bits added to DC00 */
-#define Py_UNICODE_LOW_SURROGATE(ch) (0xDC00 + ((ch) & 0x3FF))
-
-/* Check if substring matches at given offset. The offset must be
- valid, and the substring must not be empty. */
-
-#define Py_UNICODE_MATCH(string, offset, substring) \
- ((*((string)->wstr + (offset)) == *((substring)->wstr)) && \
- ((*((string)->wstr + (offset) + (substring)->wstr_length-1) == *((substring)->wstr + (substring)->wstr_length-1))) && \
- !memcmp((string)->wstr + (offset), (substring)->wstr, (substring)->wstr_length*sizeof(Py_UNICODE)))
-
-#endif /* Py_LIMITED_API */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* --- Unicode Type ------------------------------------------------------- */
-
-#ifndef Py_LIMITED_API
-
-/* ASCII-only strings created through PyUnicode_New use the PyASCIIObject
- structure. state.ascii and state.compact are set, and the data
- immediately follow the structure. utf8_length and wstr_length can be found
- in the length field; the utf8 pointer is equal to the data pointer. */
-typedef struct {
- /* There are 4 forms of Unicode strings:
-
- - compact ascii:
-
- * structure = PyASCIIObject
- * test: PyUnicode_IS_COMPACT_ASCII(op)
- * kind = PyUnicode_1BYTE_KIND
- * compact = 1
- * ascii = 1
- * ready = 1
- * (length is the length of the utf8 and wstr strings)
- * (data starts just after the structure)
- * (since ASCII is decoded from UTF-8, the utf8 string are the data)
-
- - compact:
-
- * structure = PyCompactUnicodeObject
- * test: PyUnicode_IS_COMPACT(op) && !PyUnicode_IS_ASCII(op)
- * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or
- PyUnicode_4BYTE_KIND
- * compact = 1
- * ready = 1
- * ascii = 0
- * utf8 is not shared with data
- * utf8_length = 0 if utf8 is NULL
- * wstr is shared with data and wstr_length=length
- if kind=PyUnicode_2BYTE_KIND and sizeof(wchar_t)=2
- or if kind=PyUnicode_4BYTE_KIND and sizeof(wchar_t)=4
- * wstr_length = 0 if wstr is NULL
- * (data starts just after the structure)
-
- - legacy string, not ready:
-
- * structure = PyUnicodeObject
- * test: kind == PyUnicode_WCHAR_KIND
- * length = 0 (use wstr_length)
- * hash = -1
- * kind = PyUnicode_WCHAR_KIND
- * compact = 0
- * ascii = 0
- * ready = 0
- * interned = SSTATE_NOT_INTERNED
- * wstr is not NULL
- * data.any is NULL
- * utf8 is NULL
- * utf8_length = 0
-
- - legacy string, ready:
-
- * structure = PyUnicodeObject structure
- * test: !PyUnicode_IS_COMPACT(op) && kind != PyUnicode_WCHAR_KIND
- * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or
- PyUnicode_4BYTE_KIND
- * compact = 0
- * ready = 1
- * data.any is not NULL
- * utf8 is shared and utf8_length = length with data.any if ascii = 1
- * utf8_length = 0 if utf8 is NULL
- * wstr is shared with data.any and wstr_length = length
- if kind=PyUnicode_2BYTE_KIND and sizeof(wchar_t)=2
- or if kind=PyUnicode_4BYTE_KIND and sizeof(wchar_4)=4
- * wstr_length = 0 if wstr is NULL
-
- Compact strings use only one memory block (structure + characters),
- whereas legacy strings use one block for the structure and one block
- for characters.
-
- Legacy strings are created by PyUnicode_FromUnicode() and
- PyUnicode_FromStringAndSize(NULL, size) functions. They become ready
- when PyUnicode_READY() is called.
-
- See also _PyUnicode_CheckConsistency().
- */
- PyObject_HEAD
- Py_ssize_t length; /* Number of code points in the string */
- Py_hash_t hash; /* Hash value; -1 if not set */
- struct {
- /*
- SSTATE_NOT_INTERNED (0)
- SSTATE_INTERNED_MORTAL (1)
- SSTATE_INTERNED_IMMORTAL (2)
-
- If interned != SSTATE_NOT_INTERNED, the two references from the
- dictionary to this object are *not* counted in ob_refcnt.
- */
- unsigned int interned:2;
- /* Character size:
-
- - PyUnicode_WCHAR_KIND (0):
-
- * character type = wchar_t (16 or 32 bits, depending on the
- platform)
-
- - PyUnicode_1BYTE_KIND (1):
-
- * character type = Py_UCS1 (8 bits, unsigned)
- * all characters are in the range U+0000-U+00FF (latin1)
- * if ascii is set, all characters are in the range U+0000-U+007F
- (ASCII), otherwise at least one character is in the range
- U+0080-U+00FF
-
- - PyUnicode_2BYTE_KIND (2):
-
- * character type = Py_UCS2 (16 bits, unsigned)
- * all characters are in the range U+0000-U+FFFF (BMP)
- * at least one character is in the range U+0100-U+FFFF
-
- - PyUnicode_4BYTE_KIND (4):
-
- * character type = Py_UCS4 (32 bits, unsigned)
- * all characters are in the range U+0000-U+10FFFF
- * at least one character is in the range U+10000-U+10FFFF
- */
- unsigned int kind:3;
- /* Compact is with respect to the allocation scheme. Compact unicode
- objects only require one memory block while non-compact objects use
- one block for the PyUnicodeObject struct and another for its data
- buffer. */
- unsigned int compact:1;
- /* The string only contains characters in the range U+0000-U+007F (ASCII)
- and the kind is PyUnicode_1BYTE_KIND. If ascii is set and compact is
- set, use the PyASCIIObject structure. */
- unsigned int ascii:1;
- /* The ready flag indicates whether the object layout is initialized
- completely. This means that this is either a compact object, or
- the data pointer is filled out. The bit is redundant, and helps
- to minimize the test in PyUnicode_IS_READY(). */
- unsigned int ready:1;
- /* Padding to ensure that PyUnicode_DATA() is always aligned to
- 4 bytes (see issue #19537 on m68k). */
- unsigned int :24;
- } state;
- wchar_t *wstr; /* wchar_t representation (null-terminated) */
-} PyASCIIObject;
-
-/* Non-ASCII strings allocated through PyUnicode_New use the
- PyCompactUnicodeObject structure. state.compact is set, and the data
- immediately follow the structure. */
-typedef struct {
- PyASCIIObject _base;
- Py_ssize_t utf8_length; /* Number of bytes in utf8, excluding the
- * terminating \0. */
- char *utf8; /* UTF-8 representation (null-terminated) */
- Py_ssize_t wstr_length; /* Number of code points in wstr, possible
- * surrogates count as two code points. */
-} PyCompactUnicodeObject;
-
-/* Strings allocated through PyUnicode_FromUnicode(NULL, len) use the
- PyUnicodeObject structure. The actual string data is initially in the wstr
- block, and copied into the data block using _PyUnicode_Ready. */
-typedef struct {
- PyCompactUnicodeObject _base;
- union {
- void *any;
- Py_UCS1 *latin1;
- Py_UCS2 *ucs2;
- Py_UCS4 *ucs4;
- } data; /* Canonical, smallest-form Unicode buffer */
-} PyUnicodeObject;
-#endif
-
-PyAPI_DATA(PyTypeObject) PyUnicode_Type;
-PyAPI_DATA(PyTypeObject) PyUnicodeIter_Type;
-
-#define PyUnicode_Check(op) \
- PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_UNICODE_SUBCLASS)
-#define PyUnicode_CheckExact(op) (Py_TYPE(op) == &PyUnicode_Type)
-
-/* Fast access macros */
-#ifndef Py_LIMITED_API
-
-#define PyUnicode_WSTR_LENGTH(op) \
- (PyUnicode_IS_COMPACT_ASCII(op) ? \
- ((PyASCIIObject*)op)->length : \
- ((PyCompactUnicodeObject*)op)->wstr_length)
-
-/* Returns the deprecated Py_UNICODE representation's size in code units
- (this includes surrogate pairs as 2 units).
- If the Py_UNICODE representation is not available, it will be computed
- on request. Use PyUnicode_GET_LENGTH() for the length in code points. */
-
-#define PyUnicode_GET_SIZE(op) \
- (assert(PyUnicode_Check(op)), \
- (((PyASCIIObject *)(op))->wstr) ? \
- PyUnicode_WSTR_LENGTH(op) : \
- ((void)PyUnicode_AsUnicode((PyObject *)(op)), \
- assert(((PyASCIIObject *)(op))->wstr), \
- PyUnicode_WSTR_LENGTH(op)))
- /* Py_DEPRECATED(3.3) */
-
-#define PyUnicode_GET_DATA_SIZE(op) \
- (PyUnicode_GET_SIZE(op) * Py_UNICODE_SIZE)
- /* Py_DEPRECATED(3.3) */
-
-/* Alias for PyUnicode_AsUnicode(). This will create a wchar_t/Py_UNICODE
- representation on demand. Using this macro is very inefficient now,
- try to port your code to use the new PyUnicode_*BYTE_DATA() macros or
- use PyUnicode_WRITE() and PyUnicode_READ(). */
-
-#define PyUnicode_AS_UNICODE(op) \
- (assert(PyUnicode_Check(op)), \
- (((PyASCIIObject *)(op))->wstr) ? (((PyASCIIObject *)(op))->wstr) : \
- PyUnicode_AsUnicode((PyObject *)(op)))
- /* Py_DEPRECATED(3.3) */
-
-#define PyUnicode_AS_DATA(op) \
- ((const char *)(PyUnicode_AS_UNICODE(op)))
- /* Py_DEPRECATED(3.3) */
-
-
-/* --- Flexible String Representation Helper Macros (PEP 393) -------------- */
-
-/* Values for PyASCIIObject.state: */
-
-/* Interning state. */
-#define SSTATE_NOT_INTERNED 0
-#define SSTATE_INTERNED_MORTAL 1
-#define SSTATE_INTERNED_IMMORTAL 2
-
-/* Return true if the string contains only ASCII characters, or 0 if not. The
- string may be compact (PyUnicode_IS_COMPACT_ASCII) or not, but must be
- ready. */
-#define PyUnicode_IS_ASCII(op) \
- (assert(PyUnicode_Check(op)), \
- assert(PyUnicode_IS_READY(op)), \
- ((PyASCIIObject*)op)->state.ascii)
-
-/* Return true if the string is compact or 0 if not.
- No type checks or Ready calls are performed. */
-#define PyUnicode_IS_COMPACT(op) \
- (((PyASCIIObject*)(op))->state.compact)
-
-/* Return true if the string is a compact ASCII string (use PyASCIIObject
- structure), or 0 if not. No type checks or Ready calls are performed. */
-#define PyUnicode_IS_COMPACT_ASCII(op) \
- (((PyASCIIObject*)op)->state.ascii && PyUnicode_IS_COMPACT(op))
-
-enum PyUnicode_Kind {
-/* String contains only wstr byte characters. This is only possible
- when the string was created with a legacy API and _PyUnicode_Ready()
- has not been called yet. */
- PyUnicode_WCHAR_KIND = 0,
-/* Return values of the PyUnicode_KIND() macro: */
- PyUnicode_1BYTE_KIND = 1,
- PyUnicode_2BYTE_KIND = 2,
- PyUnicode_4BYTE_KIND = 4
-};
-
-/* Return pointers to the canonical representation cast to unsigned char,
- Py_UCS2, or Py_UCS4 for direct character access.
- No checks are performed, use PyUnicode_KIND() before to ensure
- these will work correctly. */
-
-#define PyUnicode_1BYTE_DATA(op) ((Py_UCS1*)PyUnicode_DATA(op))
-#define PyUnicode_2BYTE_DATA(op) ((Py_UCS2*)PyUnicode_DATA(op))
-#define PyUnicode_4BYTE_DATA(op) ((Py_UCS4*)PyUnicode_DATA(op))
-
-/* Return one of the PyUnicode_*_KIND values defined above. */
-#define PyUnicode_KIND(op) \
- (assert(PyUnicode_Check(op)), \
- assert(PyUnicode_IS_READY(op)), \
- ((PyASCIIObject *)(op))->state.kind)
-
-/* Return a void pointer to the raw unicode buffer. */
-#define _PyUnicode_COMPACT_DATA(op) \
- (PyUnicode_IS_ASCII(op) ? \
- ((void*)((PyASCIIObject*)(op) + 1)) : \
- ((void*)((PyCompactUnicodeObject*)(op) + 1)))
-
-#define _PyUnicode_NONCOMPACT_DATA(op) \
- (assert(((PyUnicodeObject*)(op))->data.any), \
- ((((PyUnicodeObject *)(op))->data.any)))
-
-#define PyUnicode_DATA(op) \
- (assert(PyUnicode_Check(op)), \
- PyUnicode_IS_COMPACT(op) ? _PyUnicode_COMPACT_DATA(op) : \
- _PyUnicode_NONCOMPACT_DATA(op))
-
-/* In the access macros below, "kind" may be evaluated more than once.
- All other macro parameters are evaluated exactly once, so it is safe
- to put side effects into them (such as increasing the index). */
-
-/* Write into the canonical representation, this macro does not do any sanity
- checks and is intended for usage in loops. The caller should cache the
- kind and data pointers obtained from other macro calls.
- index is the index in the string (starts at 0) and value is the new
- code point value which should be written to that location. */
-#define PyUnicode_WRITE(kind, data, index, value) \
- do { \
- switch ((kind)) { \
- case PyUnicode_1BYTE_KIND: { \
- ((Py_UCS1 *)(data))[(index)] = (Py_UCS1)(value); \
- break; \
- } \
- case PyUnicode_2BYTE_KIND: { \
- ((Py_UCS2 *)(data))[(index)] = (Py_UCS2)(value); \
- break; \
- } \
- default: { \
- assert((kind) == PyUnicode_4BYTE_KIND); \
- ((Py_UCS4 *)(data))[(index)] = (Py_UCS4)(value); \
- } \
- } \
- } while (0)
-
-/* Read a code point from the string's canonical representation. No checks
- or ready calls are performed. */
-#define PyUnicode_READ(kind, data, index) \
- ((Py_UCS4) \
- ((kind) == PyUnicode_1BYTE_KIND ? \
- ((const Py_UCS1 *)(data))[(index)] : \
- ((kind) == PyUnicode_2BYTE_KIND ? \
- ((const Py_UCS2 *)(data))[(index)] : \
- ((const Py_UCS4 *)(data))[(index)] \
- ) \
- ))
-
-/* PyUnicode_READ_CHAR() is less efficient than PyUnicode_READ() because it
- calls PyUnicode_KIND() and might call it twice. For single reads, use
- PyUnicode_READ_CHAR, for multiple consecutive reads callers should
- cache kind and use PyUnicode_READ instead. */
-#define PyUnicode_READ_CHAR(unicode, index) \
- (assert(PyUnicode_Check(unicode)), \
- assert(PyUnicode_IS_READY(unicode)), \
- (Py_UCS4) \
- (PyUnicode_KIND((unicode)) == PyUnicode_1BYTE_KIND ? \
- ((const Py_UCS1 *)(PyUnicode_DATA((unicode))))[(index)] : \
- (PyUnicode_KIND((unicode)) == PyUnicode_2BYTE_KIND ? \
- ((const Py_UCS2 *)(PyUnicode_DATA((unicode))))[(index)] : \
- ((const Py_UCS4 *)(PyUnicode_DATA((unicode))))[(index)] \
- ) \
- ))
-
-/* Returns the length of the unicode string. The caller has to make sure that
- the string has it's canonical representation set before calling
- this macro. Call PyUnicode_(FAST_)Ready to ensure that. */
-#define PyUnicode_GET_LENGTH(op) \
- (assert(PyUnicode_Check(op)), \
- assert(PyUnicode_IS_READY(op)), \
- ((PyASCIIObject *)(op))->length)
-
-
-/* Fast check to determine whether an object is ready. Equivalent to
- PyUnicode_IS_COMPACT(op) || ((PyUnicodeObject*)(op))->data.any) */
-
-#define PyUnicode_IS_READY(op) (((PyASCIIObject*)op)->state.ready)
-
-/* PyUnicode_READY() does less work than _PyUnicode_Ready() in the best
- case. If the canonical representation is not yet set, it will still call
- _PyUnicode_Ready().
- Returns 0 on success and -1 on errors. */
-#define PyUnicode_READY(op) \
- (assert(PyUnicode_Check(op)), \
- (PyUnicode_IS_READY(op) ? \
- 0 : _PyUnicode_Ready((PyObject *)(op))))
-
-/* Return a maximum character value which is suitable for creating another
- string based on op. This is always an approximation but more efficient
- than iterating over the string. */
-#define PyUnicode_MAX_CHAR_VALUE(op) \
- (assert(PyUnicode_IS_READY(op)), \
- (PyUnicode_IS_ASCII(op) ? \
- (0x7f) : \
- (PyUnicode_KIND(op) == PyUnicode_1BYTE_KIND ? \
- (0xffU) : \
- (PyUnicode_KIND(op) == PyUnicode_2BYTE_KIND ? \
- (0xffffU) : \
- (0x10ffffU)))))
-
-#endif
-
-/* --- Constants ---------------------------------------------------------- */
-
-/* This Unicode character will be used as replacement character during
- decoding if the errors argument is set to "replace". Note: the
- Unicode character U+FFFD is the official REPLACEMENT CHARACTER in
- Unicode 3.0. */
-
-#define Py_UNICODE_REPLACEMENT_CHARACTER ((Py_UCS4) 0xFFFD)
-
-/* === Public API ========================================================= */
-
-/* --- Plain Py_UNICODE --------------------------------------------------- */
-
-/* With PEP 393, this is the recommended way to allocate a new unicode object.
- This function will allocate the object and its buffer in a single memory
- block. Objects created using this function are not resizable. */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) PyUnicode_New(
- Py_ssize_t size, /* Number of code points in the new string */
- Py_UCS4 maxchar /* maximum code point value in the string */
- );
-#endif
-
-/* Initializes the canonical string representation from the deprecated
- wstr/Py_UNICODE representation. This function is used to convert Unicode
- objects which were created using the old API to the new flexible format
- introduced with PEP 393.
-
- Don't call this function directly, use the public PyUnicode_READY() macro
- instead. */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) _PyUnicode_Ready(
- PyObject *unicode /* Unicode object */
- );
-#endif
-
-/* Get a copy of a Unicode string. */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) _PyUnicode_Copy(
- PyObject *unicode
- );
-#endif
-
-/* Copy character from one unicode object into another, this function performs
- character conversion when necessary and falls back to memcpy() if possible.
-
- Fail if to is too small (smaller than *how_many* or smaller than
- len(from)-from_start), or if kind(from[from_start:from_start+how_many]) >
- kind(to), or if *to* has more than 1 reference.
-
- Return the number of written character, or return -1 and raise an exception
- on error.
-
- Pseudo-code:
-
- how_many = min(how_many, len(from) - from_start)
- to[to_start:to_start+how_many] = from[from_start:from_start+how_many]
- return how_many
-
- Note: The function doesn't write a terminating null character.
- */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(Py_ssize_t) PyUnicode_CopyCharacters(
- PyObject *to,
- Py_ssize_t to_start,
- PyObject *from,
- Py_ssize_t from_start,
- Py_ssize_t how_many
- );
-
-/* Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so
- may crash if parameters are invalid (e.g. if the output string
- is too short). */
-PyAPI_FUNC(void) _PyUnicode_FastCopyCharacters(
- PyObject *to,
- Py_ssize_t to_start,
- PyObject *from,
- Py_ssize_t from_start,
- Py_ssize_t how_many
- );
-#endif
-
-#ifndef Py_LIMITED_API
-/* Fill a string with a character: write fill_char into
- unicode[start:start+length].
-
- Fail if fill_char is bigger than the string maximum character, or if the
- string has more than 1 reference.
-
- Return the number of written character, or return -1 and raise an exception
- on error. */
-PyAPI_FUNC(Py_ssize_t) PyUnicode_Fill(
- PyObject *unicode,
- Py_ssize_t start,
- Py_ssize_t length,
- Py_UCS4 fill_char
- );
-
-/* Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash
- if parameters are invalid (e.g. if length is longer than the string). */
-PyAPI_FUNC(void) _PyUnicode_FastFill(
- PyObject *unicode,
- Py_ssize_t start,
- Py_ssize_t length,
- Py_UCS4 fill_char
- );
-#endif
-
-/* Create a Unicode Object from the Py_UNICODE buffer u of the given
- size.
-
- u may be NULL which causes the contents to be undefined. It is the
- user's responsibility to fill in the needed data afterwards. Note
- that modifying the Unicode object contents after construction is
- only allowed if u was set to NULL.
-
- The buffer is copied into the new object. */
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) PyUnicode_FromUnicode(
- const Py_UNICODE *u, /* Unicode buffer */
- Py_ssize_t size /* size of buffer */
- ) /* Py_DEPRECATED(3.3) */;
-#endif
-
-/* Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes */
-PyAPI_FUNC(PyObject*) PyUnicode_FromStringAndSize(
- const char *u, /* UTF-8 encoded string */
- Py_ssize_t size /* size of buffer */
- );
-
-/* Similar to PyUnicode_FromUnicode(), but u points to null-terminated
- UTF-8 encoded bytes. The size is determined with strlen(). */
-PyAPI_FUNC(PyObject*) PyUnicode_FromString(
- const char *u /* UTF-8 encoded string */
- );
-
-#ifndef Py_LIMITED_API
-/* Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.
- Scan the string to find the maximum character. */
-PyAPI_FUNC(PyObject*) PyUnicode_FromKindAndData(
- int kind,
- const void *buffer,
- Py_ssize_t size);
-
-/* Create a new string from a buffer of ASCII characters.
- WARNING: Don't check if the string contains any non-ASCII character. */
-PyAPI_FUNC(PyObject*) _PyUnicode_FromASCII(
- const char *buffer,
- Py_ssize_t size);
-#endif
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(PyObject*) PyUnicode_Substring(
- PyObject *str,
- Py_ssize_t start,
- Py_ssize_t end);
-#endif
-
-#ifndef Py_LIMITED_API
-/* Compute the maximum character of the substring unicode[start:end].
- Return 127 for an empty string. */
-PyAPI_FUNC(Py_UCS4) _PyUnicode_FindMaxChar (
- PyObject *unicode,
- Py_ssize_t start,
- Py_ssize_t end);
-#endif
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-/* Copy the string into a UCS4 buffer including the null character if copy_null
- is set. Return NULL and raise an exception on error. Raise a SystemError if
- the buffer is smaller than the string. Return buffer on success.
-
- buflen is the length of the buffer in (Py_UCS4) characters. */
-PyAPI_FUNC(Py_UCS4*) PyUnicode_AsUCS4(
- PyObject *unicode,
- Py_UCS4* buffer,
- Py_ssize_t buflen,
- int copy_null);
-
-/* Copy the string into a UCS4 buffer. A new buffer is allocated using
- * PyMem_Malloc; if this fails, NULL is returned with a memory error
- exception set. */
-PyAPI_FUNC(Py_UCS4*) PyUnicode_AsUCS4Copy(PyObject *unicode);
-#endif
-
-#ifndef Py_LIMITED_API
-/* Return a read-only pointer to the Unicode object's internal
- Py_UNICODE buffer.
- If the wchar_t/Py_UNICODE representation is not yet available, this
- function will calculate it. */
-
-PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode(
- PyObject *unicode /* Unicode object */
- ) /* Py_DEPRECATED(3.3) */;
-
-/* Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string
- contains null characters. */
-PyAPI_FUNC(const Py_UNICODE *) _PyUnicode_AsUnicode(
- PyObject *unicode /* Unicode object */
- );
-
-/* Return a read-only pointer to the Unicode object's internal
- Py_UNICODE buffer and save the length at size.
- If the wchar_t/Py_UNICODE representation is not yet available, this
- function will calculate it. */
-
-PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicodeAndSize(
- PyObject *unicode, /* Unicode object */
- Py_ssize_t *size /* location where to save the length */
- ) /* Py_DEPRECATED(3.3) */;
-#endif
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-/* Get the length of the Unicode object. */
-
-PyAPI_FUNC(Py_ssize_t) PyUnicode_GetLength(
- PyObject *unicode
-);
-#endif
-
-/* Get the number of Py_UNICODE units in the
- string representation. */
-
-PyAPI_FUNC(Py_ssize_t) PyUnicode_GetSize(
- PyObject *unicode /* Unicode object */
- ) Py_DEPRECATED(3.3);
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-/* Read a character from the string. */
-
-PyAPI_FUNC(Py_UCS4) PyUnicode_ReadChar(
- PyObject *unicode,
- Py_ssize_t index
- );
-
-/* Write a character to the string. The string must have been created through
- PyUnicode_New, must not be shared, and must not have been hashed yet.
-
- Return 0 on success, -1 on error. */
-
-PyAPI_FUNC(int) PyUnicode_WriteChar(
- PyObject *unicode,
- Py_ssize_t index,
- Py_UCS4 character
- );
-#endif
-
-#ifndef Py_LIMITED_API
-/* Get the maximum ordinal for a Unicode character. */
-PyAPI_FUNC(Py_UNICODE) PyUnicode_GetMax(void) Py_DEPRECATED(3.3);
-#endif
-
-/* Resize a Unicode object. The length is the number of characters, except
- if the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length
- is the number of Py_UNICODE characters.
-
- *unicode is modified to point to the new (resized) object and 0
- returned on success.
-
- Try to resize the string in place (which is usually faster than allocating
- a new string and copy characters), or create a new string.
-
- Error handling is implemented as follows: an exception is set, -1
- is returned and *unicode left untouched.
-
- WARNING: The function doesn't check string content, the result may not be a
- string in canonical representation. */
-
-PyAPI_FUNC(int) PyUnicode_Resize(
- PyObject **unicode, /* Pointer to the Unicode object */
- Py_ssize_t length /* New length */
- );
-
-/* Decode obj to a Unicode object.
-
- bytes, bytearray and other bytes-like objects are decoded according to the
- given encoding and error handler. The encoding and error handler can be
- NULL to have the interface use UTF-8 and "strict".
-
- All other objects (including Unicode objects) raise an exception.
-
- The API returns NULL in case of an error. The caller is responsible
- for decref'ing the returned objects.
-
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_FromEncodedObject(
- PyObject *obj, /* Object */
- const char *encoding, /* encoding */
- const char *errors /* error handling */
- );
-
-/* Copy an instance of a Unicode subtype to a new true Unicode object if
- necessary. If obj is already a true Unicode object (not a subtype), return
- the reference with *incremented* refcount.
-
- The API returns NULL in case of an error. The caller is responsible
- for decref'ing the returned objects.
-
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_FromObject(
- PyObject *obj /* Object */
- );
-
-PyAPI_FUNC(PyObject *) PyUnicode_FromFormatV(
- const char *format, /* ASCII-encoded string */
- va_list vargs
- );
-PyAPI_FUNC(PyObject *) PyUnicode_FromFormat(
- const char *format, /* ASCII-encoded string */
- ...
- );
-
-#ifndef Py_LIMITED_API
-typedef struct {
- PyObject *buffer;
- void *data;
- enum PyUnicode_Kind kind;
- Py_UCS4 maxchar;
- Py_ssize_t size;
- Py_ssize_t pos;
-
- /* minimum number of allocated characters (default: 0) */
- Py_ssize_t min_length;
-
- /* minimum character (default: 127, ASCII) */
- Py_UCS4 min_char;
-
- /* If non-zero, overallocate the buffer (default: 0). */
- unsigned char overallocate;
-
- /* If readonly is 1, buffer is a shared string (cannot be modified)
- and size is set to 0. */
- unsigned char readonly;
-} _PyUnicodeWriter ;
-
-/* Initialize a Unicode writer.
- *
- * By default, the minimum buffer size is 0 character and overallocation is
- * disabled. Set min_length, min_char and overallocate attributes to control
- * the allocation of the buffer. */
-PyAPI_FUNC(void)
-_PyUnicodeWriter_Init(_PyUnicodeWriter *writer);
-
-/* Prepare the buffer to write 'length' characters
- with the specified maximum character.
-
- Return 0 on success, raise an exception and return -1 on error. */
-#define _PyUnicodeWriter_Prepare(WRITER, LENGTH, MAXCHAR) \
- (((MAXCHAR) <= (WRITER)->maxchar \
- && (LENGTH) <= (WRITER)->size - (WRITER)->pos) \
- ? 0 \
- : (((LENGTH) == 0) \
- ? 0 \
- : _PyUnicodeWriter_PrepareInternal((WRITER), (LENGTH), (MAXCHAR))))
-
-/* Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro
- instead. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_PrepareInternal(_PyUnicodeWriter *writer,
- Py_ssize_t length, Py_UCS4 maxchar);
-
-/* Prepare the buffer to have at least the kind KIND.
- For example, kind=PyUnicode_2BYTE_KIND ensures that the writer will
- support characters in range U+000-U+FFFF.
-
- Return 0 on success, raise an exception and return -1 on error. */
-#define _PyUnicodeWriter_PrepareKind(WRITER, KIND) \
- (assert((KIND) != PyUnicode_WCHAR_KIND), \
- (KIND) <= (WRITER)->kind \
- ? 0 \
- : _PyUnicodeWriter_PrepareKindInternal((WRITER), (KIND)))
-
-/* Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()
- macro instead. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_PrepareKindInternal(_PyUnicodeWriter *writer,
- enum PyUnicode_Kind kind);
-
-/* Append a Unicode character.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_WriteChar(_PyUnicodeWriter *writer,
- Py_UCS4 ch
- );
-
-/* Append a Unicode string.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_WriteStr(_PyUnicodeWriter *writer,
- PyObject *str /* Unicode string */
- );
-
-/* Append a substring of a Unicode string.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_WriteSubstring(_PyUnicodeWriter *writer,
- PyObject *str, /* Unicode string */
- Py_ssize_t start,
- Py_ssize_t end
- );
-
-/* Append an ASCII-encoded byte string.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_WriteASCIIString(_PyUnicodeWriter *writer,
- const char *str, /* ASCII-encoded byte string */
- Py_ssize_t len /* number of bytes, or -1 if unknown */
- );
-
-/* Append a latin1-encoded byte string.
- Return 0 on success, raise an exception and return -1 on error. */
-PyAPI_FUNC(int)
-_PyUnicodeWriter_WriteLatin1String(_PyUnicodeWriter *writer,
- const char *str, /* latin1-encoded byte string */
- Py_ssize_t len /* length in bytes */
- );
-
-/* Get the value of the writer as a Unicode string. Clear the
- buffer of the writer. Raise an exception and return NULL
- on error. */
-PyAPI_FUNC(PyObject *)
-_PyUnicodeWriter_Finish(_PyUnicodeWriter *writer);
-
-/* Deallocate memory of a writer (clear its internal buffer). */
-PyAPI_FUNC(void)
-_PyUnicodeWriter_Dealloc(_PyUnicodeWriter *writer);
-#endif
-
-#ifndef Py_LIMITED_API
-/* Format the object based on the format_spec, as defined in PEP 3101
- (Advanced String Formatting). */
-PyAPI_FUNC(int) _PyUnicode_FormatAdvancedWriter(
- _PyUnicodeWriter *writer,
- PyObject *obj,
- PyObject *format_spec,
- Py_ssize_t start,
- Py_ssize_t end);
-#endif
-
-PyAPI_FUNC(void) PyUnicode_InternInPlace(PyObject **);
-PyAPI_FUNC(void) PyUnicode_InternImmortal(PyObject **);
-PyAPI_FUNC(PyObject *) PyUnicode_InternFromString(
- const char *u /* UTF-8 encoded string */
- );
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void) _Py_ReleaseInternedUnicodeStrings(void);
-#endif
-
-/* Use only if you know it's a string */
-#define PyUnicode_CHECK_INTERNED(op) \
- (((PyASCIIObject *)(op))->state.interned)
-
-/* --- wchar_t support for platforms which support it --------------------- */
-
-#ifdef HAVE_WCHAR_H
-
-/* Create a Unicode Object from the wchar_t buffer w of the given
- size.
-
- The buffer is copied into the new object. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_FromWideChar(
- const wchar_t *w, /* wchar_t buffer */
- Py_ssize_t size /* size of buffer */
- );
-
-/* Copies the Unicode Object contents into the wchar_t buffer w. At
- most size wchar_t characters are copied.
-
- Note that the resulting wchar_t string may or may not be
- 0-terminated. It is the responsibility of the caller to make sure
- that the wchar_t string is 0-terminated in case this is required by
- the application.
-
- Returns the number of wchar_t characters copied (excluding a
- possibly trailing 0-termination character) or -1 in case of an
- error. */
-
-PyAPI_FUNC(Py_ssize_t) PyUnicode_AsWideChar(
- PyObject *unicode, /* Unicode object */
- wchar_t *w, /* wchar_t buffer */
- Py_ssize_t size /* size of buffer */
- );
-
-/* Convert the Unicode object to a wide character string. The output string
- always ends with a nul character. If size is not NULL, write the number of
- wide characters (excluding the null character) into *size.
-
- Returns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it)
- on success. On error, returns NULL, *size is undefined and raises a
- MemoryError. */
-
-PyAPI_FUNC(wchar_t*) PyUnicode_AsWideCharString(
- PyObject *unicode, /* Unicode object */
- Py_ssize_t *size /* number of characters of the result */
- );
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(void*) _PyUnicode_AsKind(PyObject *s, unsigned int kind);
-#endif
-
-#endif
-
-/* --- Unicode ordinals --------------------------------------------------- */
-
-/* Create a Unicode Object from the given Unicode code point ordinal.
-
- The ordinal must be in range(0x110000). A ValueError is
- raised in case it is not.
-
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_FromOrdinal(int ordinal);
-
-/* --- Free-list management ----------------------------------------------- */
-
-/* Clear the free list used by the Unicode implementation.
-
- This can be used to release memory used for objects on the free
- list back to the Python memory allocator.
-
-*/
-
-PyAPI_FUNC(int) PyUnicode_ClearFreeList(void);
-
-/* === Builtin Codecs =====================================================
-
- Many of these APIs take two arguments encoding and errors. These
- parameters encoding and errors have the same semantics as the ones
- of the builtin str() API.
-
- Setting encoding to NULL causes the default encoding (UTF-8) to be used.
-
- Error handling is set by errors which may also be set to NULL
- meaning to use the default handling defined for the codec. Default
- error handling for all builtin codecs is "strict" (ValueErrors are
- raised).
-
- The codecs all use a similar interface. Only deviation from the
- generic ones are documented.
-
-*/
-
-/* --- Manage the default encoding ---------------------------------------- */
-
-/* Returns a pointer to the default encoding (UTF-8) of the
- Unicode object unicode and the size of the encoded representation
- in bytes stored in *size.
-
- In case of an error, no *size is set.
-
- This function caches the UTF-8 encoded string in the unicodeobject
- and subsequent calls will return the same string. The memory is released
- when the unicodeobject is deallocated.
-
- _PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to
- support the previous internal function with the same behaviour.
-
- *** This API is for interpreter INTERNAL USE ONLY and will likely
- *** be removed or changed in the future.
-
- *** If you need to access the Unicode object as UTF-8 bytes string,
- *** please use PyUnicode_AsUTF8String() instead.
-*/
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(const char *) PyUnicode_AsUTF8AndSize(
- PyObject *unicode,
- Py_ssize_t *size);
-#define _PyUnicode_AsStringAndSize PyUnicode_AsUTF8AndSize
-#endif
-
-/* Returns a pointer to the default encoding (UTF-8) of the
- Unicode object unicode.
-
- Like PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation
- in the unicodeobject.
-
- _PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to
- support the previous internal function with the same behaviour.
-
- Use of this API is DEPRECATED since no size information can be
- extracted from the returned data.
-
- *** This API is for interpreter INTERNAL USE ONLY and will likely
- *** be removed or changed for Python 3.1.
-
- *** If you need to access the Unicode object as UTF-8 bytes string,
- *** please use PyUnicode_AsUTF8String() instead.
-
-*/
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(const char *) PyUnicode_AsUTF8(PyObject *unicode);
-#define _PyUnicode_AsString PyUnicode_AsUTF8
-#endif
-
-/* Returns "utf-8". */
-
-PyAPI_FUNC(const char*) PyUnicode_GetDefaultEncoding(void);
-
-/* --- Generic Codecs ----------------------------------------------------- */
-
-/* Create a Unicode object by decoding the encoded string s of the
- given size. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_Decode(
- const char *s, /* encoded string */
- Py_ssize_t size, /* size of buffer */
- const char *encoding, /* encoding */
- const char *errors /* error handling */
- );
-
-/* Decode a Unicode object unicode and return the result as Python
- object.
-
- This API is DEPRECATED. The only supported standard encoding is rot13.
- Use PyCodec_Decode() to decode with rot13 and non-standard codecs
- that decode from str. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedObject(
- PyObject *unicode, /* Unicode object */
- const char *encoding, /* encoding */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.6);
-
-/* Decode a Unicode object unicode and return the result as Unicode
- object.
-
- This API is DEPRECATED. The only supported standard encoding is rot13.
- Use PyCodec_Decode() to decode with rot13 and non-standard codecs
- that decode from str to str. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedUnicode(
- PyObject *unicode, /* Unicode object */
- const char *encoding, /* encoding */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.6);
-
-/* Encodes a Py_UNICODE buffer of the given size and returns a
- Python string object. */
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) PyUnicode_Encode(
- const Py_UNICODE *s, /* Unicode char buffer */
- Py_ssize_t size, /* number of Py_UNICODE chars to encode */
- const char *encoding, /* encoding */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.3);
-#endif
-
-/* Encodes a Unicode object and returns the result as Python
- object.
-
- This API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString()
- since all standard encodings (except rot13) encode str to bytes.
- Use PyCodec_Encode() for encoding with rot13 and non-standard codecs
- that encode form str to non-bytes. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedObject(
- PyObject *unicode, /* Unicode object */
- const char *encoding, /* encoding */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.6);
-
-/* Encodes a Unicode object and returns the result as Python string
- object. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedString(
- PyObject *unicode, /* Unicode object */
- const char *encoding, /* encoding */
- const char *errors /* error handling */
- );
-
-/* Encodes a Unicode object and returns the result as Unicode
- object.
-
- This API is DEPRECATED. The only supported standard encodings is rot13.
- Use PyCodec_Encode() to encode with rot13 and non-standard codecs
- that encode from str to str. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedUnicode(
- PyObject *unicode, /* Unicode object */
- const char *encoding, /* encoding */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.6);
-
-/* Build an encoding map. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_BuildEncodingMap(
- PyObject* string /* 256 character map */
- );
-
-/* --- UTF-7 Codecs ------------------------------------------------------- */
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF7(
- const char *string, /* UTF-7 encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors /* error handling */
- );
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF7Stateful(
- const char *string, /* UTF-7 encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- Py_ssize_t *consumed /* bytes consumed */
- );
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF7(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* number of Py_UNICODE chars to encode */
- int base64SetO, /* Encode RFC2152 Set O characters in base64 */
- int base64WhiteSpace, /* Encode whitespace (sp, ht, nl, cr) in base64 */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.3);
-PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF7(
- PyObject *unicode, /* Unicode object */
- int base64SetO, /* Encode RFC2152 Set O characters in base64 */
- int base64WhiteSpace, /* Encode whitespace (sp, ht, nl, cr) in base64 */
- const char *errors /* error handling */
- );
-#endif
-
-/* --- UTF-8 Codecs ------------------------------------------------------- */
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF8(
- const char *string, /* UTF-8 encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors /* error handling */
- );
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF8Stateful(
- const char *string, /* UTF-8 encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- Py_ssize_t *consumed /* bytes consumed */
- );
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsUTF8String(
- PyObject *unicode /* Unicode object */
- );
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) _PyUnicode_AsUTF8String(
- PyObject *unicode,
- const char *errors);
-
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF8(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* number of Py_UNICODE chars to encode */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.3);
-#endif
-
-/* --- UTF-32 Codecs ------------------------------------------------------ */
-
-/* Decodes length bytes from a UTF-32 encoded buffer string and returns
- the corresponding Unicode object.
-
- errors (if non-NULL) defines the error handling. It defaults
- to "strict".
-
- If byteorder is non-NULL, the decoder starts decoding using the
- given byte order:
-
- *byteorder == -1: little endian
- *byteorder == 0: native order
- *byteorder == 1: big endian
-
- In native mode, the first four bytes of the stream are checked for a
- BOM mark. If found, the BOM mark is analysed, the byte order
- adjusted and the BOM skipped. In the other modes, no BOM mark
- interpretation is done. After completion, *byteorder is set to the
- current byte order at the end of input data.
-
- If byteorder is NULL, the codec starts in native order mode.
-
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF32(
- const char *string, /* UTF-32 encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- int *byteorder /* pointer to byteorder to use
- 0=native;-1=LE,1=BE; updated on
- exit */
- );
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF32Stateful(
- const char *string, /* UTF-32 encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- int *byteorder, /* pointer to byteorder to use
- 0=native;-1=LE,1=BE; updated on
- exit */
- Py_ssize_t *consumed /* bytes consumed */
- );
-
-/* Returns a Python string using the UTF-32 encoding in native byte
- order. The string always starts with a BOM mark. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsUTF32String(
- PyObject *unicode /* Unicode object */
- );
-
-/* Returns a Python string object holding the UTF-32 encoded value of
- the Unicode data.
-
- If byteorder is not 0, output is written according to the following
- byte order:
-
- byteorder == -1: little endian
- byteorder == 0: native byte order (writes a BOM mark)
- byteorder == 1: big endian
-
- If byteorder is 0, the output string will always start with the
- Unicode BOM mark (U+FEFF). In the other two modes, no BOM mark is
- prepended.
-
-*/
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF32(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* number of Py_UNICODE chars to encode */
- const char *errors, /* error handling */
- int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
- ) Py_DEPRECATED(3.3);
-PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF32(
- PyObject *object, /* Unicode object */
- const char *errors, /* error handling */
- int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
- );
-#endif
-
-/* --- UTF-16 Codecs ------------------------------------------------------ */
-
-/* Decodes length bytes from a UTF-16 encoded buffer string and returns
- the corresponding Unicode object.
-
- errors (if non-NULL) defines the error handling. It defaults
- to "strict".
-
- If byteorder is non-NULL, the decoder starts decoding using the
- given byte order:
-
- *byteorder == -1: little endian
- *byteorder == 0: native order
- *byteorder == 1: big endian
-
- In native mode, the first two bytes of the stream are checked for a
- BOM mark. If found, the BOM mark is analysed, the byte order
- adjusted and the BOM skipped. In the other modes, no BOM mark
- interpretation is done. After completion, *byteorder is set to the
- current byte order at the end of input data.
-
- If byteorder is NULL, the codec starts in native order mode.
-
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF16(
- const char *string, /* UTF-16 encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- int *byteorder /* pointer to byteorder to use
- 0=native;-1=LE,1=BE; updated on
- exit */
- );
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeUTF16Stateful(
- const char *string, /* UTF-16 encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- int *byteorder, /* pointer to byteorder to use
- 0=native;-1=LE,1=BE; updated on
- exit */
- Py_ssize_t *consumed /* bytes consumed */
- );
-
-/* Returns a Python string using the UTF-16 encoding in native byte
- order. The string always starts with a BOM mark. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsUTF16String(
- PyObject *unicode /* Unicode object */
- );
-
-/* Returns a Python string object holding the UTF-16 encoded value of
- the Unicode data.
-
- If byteorder is not 0, output is written according to the following
- byte order:
-
- byteorder == -1: little endian
- byteorder == 0: native byte order (writes a BOM mark)
- byteorder == 1: big endian
-
- If byteorder is 0, the output string will always start with the
- Unicode BOM mark (U+FEFF). In the other two modes, no BOM mark is
- prepended.
-
- Note that Py_UNICODE data is being interpreted as UTF-16 reduced to
- UCS-2. This trick makes it possible to add full UTF-16 capabilities
- at a later point without compromising the APIs.
-
-*/
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeUTF16(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* number of Py_UNICODE chars to encode */
- const char *errors, /* error handling */
- int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
- ) Py_DEPRECATED(3.3);
-PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF16(
- PyObject* unicode, /* Unicode object */
- const char *errors, /* error handling */
- int byteorder /* byteorder to use 0=BOM+native;-1=LE,1=BE */
- );
-#endif
-
-/* --- Unicode-Escape Codecs ---------------------------------------------- */
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeUnicodeEscape(
- const char *string, /* Unicode-Escape encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors /* error handling */
- );
-
-#ifndef Py_LIMITED_API
-/* Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape
- chars. */
-PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscape(
- const char *string, /* Unicode-Escape encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- const char **first_invalid_escape /* on return, points to first
- invalid escaped char in
- string. */
-);
-#endif
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsUnicodeEscapeString(
- PyObject *unicode /* Unicode object */
- );
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeUnicodeEscape(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length /* Number of Py_UNICODE chars to encode */
- ) Py_DEPRECATED(3.3);
-#endif
-
-/* --- Raw-Unicode-Escape Codecs ------------------------------------------ */
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeRawUnicodeEscape(
- const char *string, /* Raw-Unicode-Escape encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors /* error handling */
- );
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsRawUnicodeEscapeString(
- PyObject *unicode /* Unicode object */
- );
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeRawUnicodeEscape(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length /* Number of Py_UNICODE chars to encode */
- ) Py_DEPRECATED(3.3);
-#endif
-
-/* --- Unicode Internal Codec ---------------------------------------------
-
- Only for internal use in _codecsmodule.c */
-
-#ifndef Py_LIMITED_API
-PyObject *_PyUnicode_DecodeUnicodeInternal(
- const char *string,
- Py_ssize_t length,
- const char *errors
- );
-#endif
-
-/* --- Latin-1 Codecs -----------------------------------------------------
-
- Note: Latin-1 corresponds to the first 256 Unicode ordinals.
-
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeLatin1(
- const char *string, /* Latin-1 encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors /* error handling */
- );
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsLatin1String(
- PyObject *unicode /* Unicode object */
- );
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) _PyUnicode_AsLatin1String(
- PyObject* unicode,
- const char* errors);
-
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeLatin1(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.3);
-#endif
-
-/* --- ASCII Codecs -------------------------------------------------------
-
- Only 7-bit ASCII data is excepted. All other codes generate errors.
-
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeASCII(
- const char *string, /* ASCII encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors /* error handling */
- );
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsASCIIString(
- PyObject *unicode /* Unicode object */
- );
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) _PyUnicode_AsASCIIString(
- PyObject* unicode,
- const char* errors);
-
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeASCII(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.3);
-#endif
-
-/* --- Character Map Codecs -----------------------------------------------
-
- This codec uses mappings to encode and decode characters.
-
- Decoding mappings must map byte ordinals (integers in the range from 0 to
- 255) to Unicode strings, integers (which are then interpreted as Unicode
- ordinals) or None. Unmapped data bytes (ones which cause a LookupError)
- as well as mapped to None, 0xFFFE or '\ufffe' are treated as "undefined
- mapping" and cause an error.
-
- Encoding mappings must map Unicode ordinal integers to bytes objects,
- integers in the range from 0 to 255 or None. Unmapped character
- ordinals (ones which cause a LookupError) as well as mapped to
- None are treated as "undefined mapping" and cause an error.
-
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeCharmap(
- const char *string, /* Encoded string */
- Py_ssize_t length, /* size of string */
- PyObject *mapping, /* decoding mapping */
- const char *errors /* error handling */
- );
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsCharmapString(
- PyObject *unicode, /* Unicode object */
- PyObject *mapping /* encoding mapping */
- );
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeCharmap(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
- PyObject *mapping, /* encoding mapping */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.3);
-PyAPI_FUNC(PyObject*) _PyUnicode_EncodeCharmap(
- PyObject *unicode, /* Unicode object */
- PyObject *mapping, /* encoding mapping */
- const char *errors /* error handling */
- );
-#endif
-
-/* Translate a Py_UNICODE buffer of the given length by applying a
- character mapping table to it and return the resulting Unicode
- object.
-
- The mapping table must map Unicode ordinal integers to Unicode strings,
- Unicode ordinal integers or None (causing deletion of the character).
-
- Mapping tables may be dictionaries or sequences. Unmapped character
- ordinals (ones which cause a LookupError) are left untouched and
- are copied as-is.
-
-*/
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) PyUnicode_TranslateCharmap(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
- PyObject *table, /* Translate table */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.3);
-#endif
-
-#ifdef MS_WINDOWS
-
-/* --- MBCS codecs for Windows -------------------------------------------- */
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeMBCS(
- const char *string, /* MBCS encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors /* error handling */
- );
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeMBCSStateful(
- const char *string, /* MBCS encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- Py_ssize_t *consumed /* bytes consumed */
- );
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeCodePageStateful(
- int code_page, /* code page number */
- const char *string, /* encoded string */
- Py_ssize_t length, /* size of string */
- const char *errors, /* error handling */
- Py_ssize_t *consumed /* bytes consumed */
- );
-#endif
-
-PyAPI_FUNC(PyObject*) PyUnicode_AsMBCSString(
- PyObject *unicode /* Unicode object */
- );
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeMBCS(
- const Py_UNICODE *data, /* Unicode char buffer */
- Py_ssize_t length, /* number of Py_UNICODE chars to encode */
- const char *errors /* error handling */
- ) Py_DEPRECATED(3.3);
-#endif
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeCodePage(
- int code_page, /* code page number */
- PyObject *unicode, /* Unicode object */
- const char *errors /* error handling */
- );
-#endif
-
-#endif /* MS_WINDOWS */
-
-#ifndef Py_LIMITED_API
-/* --- Decimal Encoder ---------------------------------------------------- */
-
-/* Takes a Unicode string holding a decimal value and writes it into
- an output buffer using standard ASCII digit codes.
-
- The output buffer has to provide at least length+1 bytes of storage
- area. The output string is 0-terminated.
-
- The encoder converts whitespace to ' ', decimal characters to their
- corresponding ASCII digit and all other Latin-1 characters except
- \0 as-is. Characters outside this range (Unicode ordinals 1-256)
- are treated as errors. This includes embedded NULL bytes.
-
- Error handling is defined by the errors argument:
-
- NULL or "strict": raise a ValueError
- "ignore": ignore the wrong characters (these are not copied to the
- output buffer)
- "replace": replaces illegal characters with '?'
-
- Returns 0 on success, -1 on failure.
-
-*/
-
-PyAPI_FUNC(int) PyUnicode_EncodeDecimal(
- Py_UNICODE *s, /* Unicode buffer */
- Py_ssize_t length, /* Number of Py_UNICODE chars to encode */
- char *output, /* Output buffer; must have size >= length */
- const char *errors /* error handling */
- ) /* Py_DEPRECATED(3.3) */;
-
-/* Transforms code points that have decimal digit property to the
- corresponding ASCII digit code points.
-
- Returns a new Unicode string on success, NULL on failure.
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_TransformDecimalToASCII(
- Py_UNICODE *s, /* Unicode buffer */
- Py_ssize_t length /* Number of Py_UNICODE chars to transform */
- ) /* Py_DEPRECATED(3.3) */;
-
-/* Coverts a Unicode object holding a decimal value to an ASCII string
- for using in int, float and complex parsers.
- Transforms code points that have decimal digit property to the
- corresponding ASCII digit code points. Transforms spaces to ASCII.
- Transforms code points starting from the first non-ASCII code point that
- is neither a decimal digit nor a space to the end into '?'. */
-
-PyAPI_FUNC(PyObject*) _PyUnicode_TransformDecimalAndSpaceToASCII(
- PyObject *unicode /* Unicode object */
- );
-#endif
-
-/* --- Locale encoding --------------------------------------------------- */
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-/* Decode a string from the current locale encoding. The decoder is strict if
- *surrogateescape* is equal to zero, otherwise it uses the 'surrogateescape'
- error handler (PEP 383) to escape undecodable bytes. If a byte sequence can
- be decoded as a surrogate character and *surrogateescape* is not equal to
- zero, the byte sequence is escaped using the 'surrogateescape' error handler
- instead of being decoded. *str* must end with a null character but cannot
- contain embedded null characters. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeLocaleAndSize(
- const char *str,
- Py_ssize_t len,
- const char *errors);
-
-/* Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string
- length using strlen(). */
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeLocale(
- const char *str,
- const char *errors);
-
-/* Encode a Unicode object to the current locale encoding. The encoder is
- strict is *surrogateescape* is equal to zero, otherwise the
- "surrogateescape" error handler is used. Return a bytes object. The string
- cannot contain embedded null characters. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeLocale(
- PyObject *unicode,
- const char *errors
- );
-#endif
-
-/* --- File system encoding ---------------------------------------------- */
-
-/* ParseTuple converter: encode str objects to bytes using
- PyUnicode_EncodeFSDefault(); bytes objects are output as-is. */
-
-PyAPI_FUNC(int) PyUnicode_FSConverter(PyObject*, void*);
-
-/* ParseTuple converter: decode bytes objects to unicode using
- PyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is. */
-
-PyAPI_FUNC(int) PyUnicode_FSDecoder(PyObject*, void*);
-
-/* Decode a null-terminated string using Py_FileSystemDefaultEncoding
- and the "surrogateescape" error handler.
-
- If Py_FileSystemDefaultEncoding is not set, fall back to the locale
- encoding.
-
- Use PyUnicode_DecodeFSDefaultAndSize() if the string length is known.
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeFSDefault(
- const char *s /* encoded string */
- );
-
-/* Decode a string using Py_FileSystemDefaultEncoding
- and the "surrogateescape" error handler.
-
- If Py_FileSystemDefaultEncoding is not set, fall back to the locale
- encoding.
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_DecodeFSDefaultAndSize(
- const char *s, /* encoded string */
- Py_ssize_t size /* size */
- );
-
-/* Encode a Unicode object to Py_FileSystemDefaultEncoding with the
- "surrogateescape" error handler, and return bytes.
-
- If Py_FileSystemDefaultEncoding is not set, fall back to the locale
- encoding.
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_EncodeFSDefault(
- PyObject *unicode
- );
-
-/* --- Methods & Slots ----------------------------------------------------
-
- These are capable of handling Unicode objects and strings on input
- (we refer to them as strings in the descriptions) and return
- Unicode objects or integers as appropriate. */
-
-/* Concat two strings giving a new Unicode string. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_Concat(
- PyObject *left, /* Left string */
- PyObject *right /* Right string */
- );
-
-/* Concat two strings and put the result in *pleft
- (sets *pleft to NULL on error) */
-
-PyAPI_FUNC(void) PyUnicode_Append(
- PyObject **pleft, /* Pointer to left string */
- PyObject *right /* Right string */
- );
-
-/* Concat two strings, put the result in *pleft and drop the right object
- (sets *pleft to NULL on error) */
-
-PyAPI_FUNC(void) PyUnicode_AppendAndDel(
- PyObject **pleft, /* Pointer to left string */
- PyObject *right /* Right string */
- );
-
-/* Split a string giving a list of Unicode strings.
-
- If sep is NULL, splitting will be done at all whitespace
- substrings. Otherwise, splits occur at the given separator.
-
- At most maxsplit splits will be done. If negative, no limit is set.
-
- Separators are not included in the resulting list.
-
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_Split(
- PyObject *s, /* String to split */
- PyObject *sep, /* String separator */
- Py_ssize_t maxsplit /* Maxsplit count */
- );
-
-/* Dito, but split at line breaks.
-
- CRLF is considered to be one line break. Line breaks are not
- included in the resulting list. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_Splitlines(
- PyObject *s, /* String to split */
- int keepends /* If true, line end markers are included */
- );
-
-/* Partition a string using a given separator. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_Partition(
- PyObject *s, /* String to partition */
- PyObject *sep /* String separator */
- );
-
-/* Partition a string using a given separator, searching from the end of the
- string. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_RPartition(
- PyObject *s, /* String to partition */
- PyObject *sep /* String separator */
- );
-
-/* Split a string giving a list of Unicode strings.
-
- If sep is NULL, splitting will be done at all whitespace
- substrings. Otherwise, splits occur at the given separator.
-
- At most maxsplit splits will be done. But unlike PyUnicode_Split
- PyUnicode_RSplit splits from the end of the string. If negative,
- no limit is set.
-
- Separators are not included in the resulting list.
-
-*/
-
-PyAPI_FUNC(PyObject*) PyUnicode_RSplit(
- PyObject *s, /* String to split */
- PyObject *sep, /* String separator */
- Py_ssize_t maxsplit /* Maxsplit count */
- );
-
-/* Translate a string by applying a character mapping table to it and
- return the resulting Unicode object.
-
- The mapping table must map Unicode ordinal integers to Unicode strings,
- Unicode ordinal integers or None (causing deletion of the character).
-
- Mapping tables may be dictionaries or sequences. Unmapped character
- ordinals (ones which cause a LookupError) are left untouched and
- are copied as-is.
-
-*/
-
-PyAPI_FUNC(PyObject *) PyUnicode_Translate(
- PyObject *str, /* String */
- PyObject *table, /* Translate table */
- const char *errors /* error handling */
- );
-
-/* Join a sequence of strings using the given separator and return
- the resulting Unicode string. */
-
-PyAPI_FUNC(PyObject*) PyUnicode_Join(
- PyObject *separator, /* Separator string */
- PyObject *seq /* Sequence object */
- );
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyUnicode_JoinArray(
- PyObject *separator,
- PyObject *const *items,
- Py_ssize_t seqlen
- );
-#endif /* Py_LIMITED_API */
-
-/* Return 1 if substr matches str[start:end] at the given tail end, 0
- otherwise. */
-
-PyAPI_FUNC(Py_ssize_t) PyUnicode_Tailmatch(
- PyObject *str, /* String */
- PyObject *substr, /* Prefix or Suffix string */
- Py_ssize_t start, /* Start index */
- Py_ssize_t end, /* Stop index */
- int direction /* Tail end: -1 prefix, +1 suffix */
- );
-
-/* Return the first position of substr in str[start:end] using the
- given search direction or -1 if not found. -2 is returned in case
- an error occurred and an exception is set. */
-
-PyAPI_FUNC(Py_ssize_t) PyUnicode_Find(
- PyObject *str, /* String */
- PyObject *substr, /* Substring to find */
- Py_ssize_t start, /* Start index */
- Py_ssize_t end, /* Stop index */
- int direction /* Find direction: +1 forward, -1 backward */
- );
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
-/* Like PyUnicode_Find, but search for single character only. */
-PyAPI_FUNC(Py_ssize_t) PyUnicode_FindChar(
- PyObject *str,
- Py_UCS4 ch,
- Py_ssize_t start,
- Py_ssize_t end,
- int direction
- );
-#endif
-
-/* Count the number of occurrences of substr in str[start:end]. */
-
-PyAPI_FUNC(Py_ssize_t) PyUnicode_Count(
- PyObject *str, /* String */
- PyObject *substr, /* Substring to count */
- Py_ssize_t start, /* Start index */
- Py_ssize_t end /* Stop index */
- );
-
-/* Replace at most maxcount occurrences of substr in str with replstr
- and return the resulting Unicode object. */
-
-PyAPI_FUNC(PyObject *) PyUnicode_Replace(
- PyObject *str, /* String */
- PyObject *substr, /* Substring to find */
- PyObject *replstr, /* Substring to replace */
- Py_ssize_t maxcount /* Max. number of replacements to apply;
- -1 = all */
- );
-
-/* Compare two strings and return -1, 0, 1 for less than, equal,
- greater than resp.
- Raise an exception and return -1 on error. */
-
-PyAPI_FUNC(int) PyUnicode_Compare(
- PyObject *left, /* Left string */
- PyObject *right /* Right string */
- );
-
-#ifndef Py_LIMITED_API
-/* Test whether a unicode is equal to ASCII identifier. Return 1 if true,
- 0 otherwise. The right argument must be ASCII identifier.
- Any error occurs inside will be cleared before return. */
-
-PyAPI_FUNC(int) _PyUnicode_EqualToASCIIId(
- PyObject *left, /* Left string */
- _Py_Identifier *right /* Right identifier */
- );
-#endif
-
-/* Compare a Unicode object with C string and return -1, 0, 1 for less than,
- equal, and greater than, respectively. It is best to pass only
- ASCII-encoded strings, but the function interprets the input string as
- ISO-8859-1 if it contains non-ASCII characters.
- This function does not raise exceptions. */
-
-PyAPI_FUNC(int) PyUnicode_CompareWithASCIIString(
- PyObject *left,
- const char *right /* ASCII-encoded string */
- );
-
-#ifndef Py_LIMITED_API
-/* Test whether a unicode is equal to ASCII string. Return 1 if true,
- 0 otherwise. The right argument must be ASCII-encoded string.
- Any error occurs inside will be cleared before return. */
-
-PyAPI_FUNC(int) _PyUnicode_EqualToASCIIString(
- PyObject *left,
- const char *right /* ASCII-encoded string */
- );
-#endif
-
-/* Rich compare two strings and return one of the following:
-
- - NULL in case an exception was raised
- - Py_True or Py_False for successful comparisons
- - Py_NotImplemented in case the type combination is unknown
-
- Possible values for op:
-
- Py_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE
-
-*/
-
-PyAPI_FUNC(PyObject *) PyUnicode_RichCompare(
- PyObject *left, /* Left string */
- PyObject *right, /* Right string */
- int op /* Operation: Py_EQ, Py_NE, Py_GT, etc. */
- );
-
-/* Apply an argument tuple or dictionary to a format string and return
- the resulting Unicode string. */
-
-PyAPI_FUNC(PyObject *) PyUnicode_Format(
- PyObject *format, /* Format string */
- PyObject *args /* Argument tuple or dictionary */
- );
-
-/* Checks whether element is contained in container and return 1/0
- accordingly.
-
- element has to coerce to a one element Unicode string. -1 is
- returned in case of an error. */
-
-PyAPI_FUNC(int) PyUnicode_Contains(
- PyObject *container, /* Container string */
- PyObject *element /* Element string */
- );
-
-/* Checks whether argument is a valid identifier. */
-
-PyAPI_FUNC(int) PyUnicode_IsIdentifier(PyObject *s);
-
-#ifndef Py_LIMITED_API
-/* Externally visible for str.strip(unicode) */
-PyAPI_FUNC(PyObject *) _PyUnicode_XStrip(
- PyObject *self,
- int striptype,
- PyObject *sepobj
- );
-#endif
-
-/* Using explicit passed-in values, insert the thousands grouping
- into the string pointed to by buffer. For the argument descriptions,
- see Objects/stringlib/localeutil.h */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(Py_ssize_t) _PyUnicode_InsertThousandsGrouping(
- _PyUnicodeWriter *writer,
- Py_ssize_t n_buffer,
- PyObject *digits,
- Py_ssize_t d_pos,
- Py_ssize_t n_digits,
- Py_ssize_t min_width,
- const char *grouping,
- PyObject *thousands_sep,
- Py_UCS4 *maxchar);
-#endif
-/* === Characters Type APIs =============================================== */
-
-/* Helper array used by Py_UNICODE_ISSPACE(). */
-
-#ifndef Py_LIMITED_API
-PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[];
-
-/* These should not be used directly. Use the Py_UNICODE_IS* and
- Py_UNICODE_TO* macros instead.
-
- These APIs are implemented in Objects/unicodectype.c.
-
-*/
-
-PyAPI_FUNC(int) _PyUnicode_IsLowercase(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsUppercase(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsTitlecase(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsXidStart(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsXidContinue(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsWhitespace(
- const Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsLinebreak(
- const Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(Py_UCS4) _PyUnicode_ToLowercase(
- Py_UCS4 ch /* Unicode character */
- ) /* Py_DEPRECATED(3.3) */;
-
-PyAPI_FUNC(Py_UCS4) _PyUnicode_ToUppercase(
- Py_UCS4 ch /* Unicode character */
- ) /* Py_DEPRECATED(3.3) */;
-
-PyAPI_FUNC(Py_UCS4) _PyUnicode_ToTitlecase(
- Py_UCS4 ch /* Unicode character */
- ) Py_DEPRECATED(3.3);
-
-PyAPI_FUNC(int) _PyUnicode_ToLowerFull(
- Py_UCS4 ch, /* Unicode character */
- Py_UCS4 *res
- );
-
-PyAPI_FUNC(int) _PyUnicode_ToTitleFull(
- Py_UCS4 ch, /* Unicode character */
- Py_UCS4 *res
- );
-
-PyAPI_FUNC(int) _PyUnicode_ToUpperFull(
- Py_UCS4 ch, /* Unicode character */
- Py_UCS4 *res
- );
-
-PyAPI_FUNC(int) _PyUnicode_ToFoldedFull(
- Py_UCS4 ch, /* Unicode character */
- Py_UCS4 *res
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsCaseIgnorable(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsCased(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_ToDecimalDigit(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_ToDigit(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(double) _PyUnicode_ToNumeric(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsDecimalDigit(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsDigit(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsNumeric(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsPrintable(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(int) _PyUnicode_IsAlpha(
- Py_UCS4 ch /* Unicode character */
- );
-
-PyAPI_FUNC(size_t) Py_UNICODE_strlen(
- const Py_UNICODE *u
- ) Py_DEPRECATED(3.3);
-
-PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strcpy(
- Py_UNICODE *s1,
- const Py_UNICODE *s2) Py_DEPRECATED(3.3);
-
-PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strcat(
- Py_UNICODE *s1, const Py_UNICODE *s2) Py_DEPRECATED(3.3);
-
-PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strncpy(
- Py_UNICODE *s1,
- const Py_UNICODE *s2,
- size_t n) Py_DEPRECATED(3.3);
-
-PyAPI_FUNC(int) Py_UNICODE_strcmp(
- const Py_UNICODE *s1,
- const Py_UNICODE *s2
- ) Py_DEPRECATED(3.3);
-
-PyAPI_FUNC(int) Py_UNICODE_strncmp(
- const Py_UNICODE *s1,
- const Py_UNICODE *s2,
- size_t n
- ) Py_DEPRECATED(3.3);
-
-PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strchr(
- const Py_UNICODE *s,
- Py_UNICODE c
- ) Py_DEPRECATED(3.3);
-
-PyAPI_FUNC(Py_UNICODE*) Py_UNICODE_strrchr(
- const Py_UNICODE *s,
- Py_UNICODE c
- ) Py_DEPRECATED(3.3);
-
-PyAPI_FUNC(PyObject*) _PyUnicode_FormatLong(PyObject *, int, int, int);
-
-/* Create a copy of a unicode string ending with a nul character. Return NULL
- and raise a MemoryError exception on memory allocation failure, otherwise
- return a new allocated buffer (use PyMem_Free() to free the buffer). */
-
-PyAPI_FUNC(Py_UNICODE*) PyUnicode_AsUnicodeCopy(
- PyObject *unicode
- ) Py_DEPRECATED(3.3);
-#endif /* Py_LIMITED_API */
-
-#if defined(Py_DEBUG) && !defined(Py_LIMITED_API)
-PyAPI_FUNC(int) _PyUnicode_CheckConsistency(
- PyObject *op,
- int check_content);
-#elif !defined(NDEBUG)
-/* For asserts that call _PyUnicode_CheckConsistency(), which would
- * otherwise be a problem when building with asserts but without Py_DEBUG. */
-#define _PyUnicode_CheckConsistency(op, check_content) PyUnicode_Check(op)
-#endif
-
-#ifndef Py_LIMITED_API
-/* Return an interned Unicode object for an Identifier; may fail if there is no memory.*/
-PyAPI_FUNC(PyObject*) _PyUnicode_FromId(_Py_Identifier*);
-/* Clear all static strings. */
-PyAPI_FUNC(void) _PyUnicode_ClearStaticStrings(void);
-
-/* Fast equality check when the inputs are known to be exact unicode types
- and where the hash values are equal (i.e. a very probable match) */
-PyAPI_FUNC(int) _PyUnicode_EQ(PyObject *, PyObject *);
-#endif /* !Py_LIMITED_API */
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_UNICODEOBJECT_H */
diff --git a/EasyTrans/Include/warnings.h b/EasyTrans/Include/warnings.h
deleted file mode 100644
index a675bb5d..00000000
--- a/EasyTrans/Include/warnings.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef Py_WARNINGS_H
-#define Py_WARNINGS_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject*) _PyWarnings_Init(void);
-#endif
-
-PyAPI_FUNC(int) PyErr_WarnEx(
- PyObject *category,
- const char *message, /* UTF-8 encoded string */
- Py_ssize_t stack_level);
-PyAPI_FUNC(int) PyErr_WarnFormat(
- PyObject *category,
- Py_ssize_t stack_level,
- const char *format, /* ASCII-encoded string */
- ...);
-
-#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000
-/* Emit a ResourceWarning warning */
-PyAPI_FUNC(int) PyErr_ResourceWarning(
- PyObject *source,
- Py_ssize_t stack_level,
- const char *format, /* ASCII-encoded string */
- ...);
-#endif
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int) PyErr_WarnExplicitObject(
- PyObject *category,
- PyObject *message,
- PyObject *filename,
- int lineno,
- PyObject *module,
- PyObject *registry);
-#endif
-PyAPI_FUNC(int) PyErr_WarnExplicit(
- PyObject *category,
- const char *message, /* UTF-8 encoded string */
- const char *filename, /* decoded from the filesystem encoding */
- int lineno,
- const char *module, /* UTF-8 encoded string */
- PyObject *registry);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(int)
-PyErr_WarnExplicitFormat(PyObject *category,
- const char *filename, int lineno,
- const char *module, PyObject *registry,
- const char *format, ...);
-#endif
-
-/* DEPRECATED: Use PyErr_WarnEx() instead. */
-#ifndef Py_LIMITED_API
-#define PyErr_Warn(category, msg) PyErr_WarnEx(category, msg, 1)
-#endif
-
-#ifndef Py_LIMITED_API
-void _PyErr_WarnUnawaitedCoroutine(PyObject *coro);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_WARNINGS_H */
-
diff --git a/EasyTrans/Include/weakrefobject.h b/EasyTrans/Include/weakrefobject.h
deleted file mode 100644
index 17051568..00000000
--- a/EasyTrans/Include/weakrefobject.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Weak references objects for Python. */
-
-#ifndef Py_WEAKREFOBJECT_H
-#define Py_WEAKREFOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-typedef struct _PyWeakReference PyWeakReference;
-
-/* PyWeakReference is the base struct for the Python ReferenceType, ProxyType,
- * and CallableProxyType.
- */
-#ifndef Py_LIMITED_API
-struct _PyWeakReference {
- PyObject_HEAD
-
- /* The object to which this is a weak reference, or Py_None if none.
- * Note that this is a stealth reference: wr_object's refcount is
- * not incremented to reflect this pointer.
- */
- PyObject *wr_object;
-
- /* A callable to invoke when wr_object dies, or NULL if none. */
- PyObject *wr_callback;
-
- /* A cache for wr_object's hash code. As usual for hashes, this is -1
- * if the hash code isn't known yet.
- */
- Py_hash_t hash;
-
- /* If wr_object is weakly referenced, wr_object has a doubly-linked NULL-
- * terminated list of weak references to it. These are the list pointers.
- * If wr_object goes away, wr_object is set to Py_None, and these pointers
- * have no meaning then.
- */
- PyWeakReference *wr_prev;
- PyWeakReference *wr_next;
-};
-#endif
-
-PyAPI_DATA(PyTypeObject) _PyWeakref_RefType;
-PyAPI_DATA(PyTypeObject) _PyWeakref_ProxyType;
-PyAPI_DATA(PyTypeObject) _PyWeakref_CallableProxyType;
-
-#define PyWeakref_CheckRef(op) PyObject_TypeCheck(op, &_PyWeakref_RefType)
-#define PyWeakref_CheckRefExact(op) \
- (Py_TYPE(op) == &_PyWeakref_RefType)
-#define PyWeakref_CheckProxy(op) \
- ((Py_TYPE(op) == &_PyWeakref_ProxyType) || \
- (Py_TYPE(op) == &_PyWeakref_CallableProxyType))
-
-#define PyWeakref_Check(op) \
- (PyWeakref_CheckRef(op) || PyWeakref_CheckProxy(op))
-
-
-PyAPI_FUNC(PyObject *) PyWeakref_NewRef(PyObject *ob,
- PyObject *callback);
-PyAPI_FUNC(PyObject *) PyWeakref_NewProxy(PyObject *ob,
- PyObject *callback);
-PyAPI_FUNC(PyObject *) PyWeakref_GetObject(PyObject *ref);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(Py_ssize_t) _PyWeakref_GetWeakrefCount(PyWeakReference *head);
-
-PyAPI_FUNC(void) _PyWeakref_ClearRef(PyWeakReference *self);
-#endif
-
-/* Explanation for the Py_REFCNT() check: when a weakref's target is part
- of a long chain of deallocations which triggers the trashcan mechanism,
- clearing the weakrefs can be delayed long after the target's refcount
- has dropped to zero. In the meantime, code accessing the weakref will
- be able to "see" the target object even though it is supposed to be
- unreachable. See issue #16602. */
-
-#define PyWeakref_GET_OBJECT(ref) \
- (Py_REFCNT(((PyWeakReference *)(ref))->wr_object) > 0 \
- ? ((PyWeakReference *)(ref))->wr_object \
- : Py_None)
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_WEAKREFOBJECT_H */
diff --git a/EasyTrans/LICENSE.txt b/EasyTrans/LICENSE.txt
deleted file mode 100644
index 43fe0d6c..00000000
--- a/EasyTrans/LICENSE.txt
+++ /dev/null
@@ -1,603 +0,0 @@
-A. HISTORY OF THE SOFTWARE
-==========================
-
-Python was created in the early 1990s by Guido van Rossum at Stichting
-Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
-as a successor of a language called ABC. Guido remains Python's
-principal author, although it includes many contributions from others.
-
-In 1995, Guido continued his work on Python at the Corporation for
-National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
-in Reston, Virginia where he released several versions of the
-software.
-
-In May 2000, Guido and the Python core development team moved to
-BeOpen.com to form the BeOpen PythonLabs team. In October of the same
-year, the PythonLabs team moved to Digital Creations, which became
-Zope Corporation. In 2001, the Python Software Foundation (PSF, see
-https://www.python.org/psf/) was formed, a non-profit organization
-created specifically to own Python-related Intellectual Property.
-Zope Corporation was a sponsoring member of the PSF.
-
-All Python releases are Open Source (see http://www.opensource.org for
-the Open Source Definition). Historically, most, but not all, Python
-releases have also been GPL-compatible; the table below summarizes
-the various releases.
-
- Release Derived Year Owner GPL-
- from compatible? (1)
-
- 0.9.0 thru 1.2 1991-1995 CWI yes
- 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
- 1.6 1.5.2 2000 CNRI no
- 2.0 1.6 2000 BeOpen.com no
- 1.6.1 1.6 2001 CNRI yes (2)
- 2.1 2.0+1.6.1 2001 PSF no
- 2.0.1 2.0+1.6.1 2001 PSF yes
- 2.1.1 2.1+2.0.1 2001 PSF yes
- 2.1.2 2.1.1 2002 PSF yes
- 2.1.3 2.1.2 2002 PSF yes
- 2.2 and above 2.1.1 2001-now PSF yes
-
-Footnotes:
-
-(1) GPL-compatible doesn't mean that we're distributing Python under
- the GPL. All Python licenses, unlike the GPL, let you distribute
- a modified version without making your changes open source. The
- GPL-compatible licenses make it possible to combine Python with
- other software that is released under the GPL; the others don't.
-
-(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
- because its license has a choice of law clause. According to
- CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
- is "not incompatible" with the GPL.
-
-Thanks to the many outside volunteers who have worked under Guido's
-direction to make these releases possible.
-
-
-B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
-===============================================================
-
-PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
---------------------------------------------
-
-1. This LICENSE AGREEMENT is between the Python Software Foundation
-("PSF"), and the Individual or Organization ("Licensee") accessing and
-otherwise using this software ("Python") in source or binary form and
-its associated documentation.
-
-2. Subject to the terms and conditions of this License Agreement, PSF hereby
-grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
-analyze, test, perform and/or display publicly, prepare derivative works,
-distribute, and otherwise use Python alone or in any derivative version,
-provided, however, that PSF's License Agreement and PSF's notice of copyright,
-i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Python Software Foundation;
-All Rights Reserved" are retained in Python alone or in any derivative version
-prepared by Licensee.
-
-3. In the event Licensee prepares a derivative work that is based on
-or incorporates Python or any part thereof, and wants to make
-the derivative work available to others as provided herein, then
-Licensee hereby agrees to include in any such work a brief summary of
-the changes made to Python.
-
-4. PSF is making Python available to Licensee on an "AS IS"
-basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
-FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
-A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
-OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-6. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-7. Nothing in this License Agreement shall be deemed to create any
-relationship of agency, partnership, or joint venture between PSF and
-Licensee. This License Agreement does not grant permission to use PSF
-trademarks or trade name in a trademark sense to endorse or promote
-products or services of Licensee, or any third party.
-
-8. By copying, installing or otherwise using Python, Licensee
-agrees to be bound by the terms and conditions of this License
-Agreement.
-
-
-BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
--------------------------------------------
-
-BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
-
-1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
-office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
-Individual or Organization ("Licensee") accessing and otherwise using
-this software in source or binary form and its associated
-documentation ("the Software").
-
-2. Subject to the terms and conditions of this BeOpen Python License
-Agreement, BeOpen hereby grants Licensee a non-exclusive,
-royalty-free, world-wide license to reproduce, analyze, test, perform
-and/or display publicly, prepare derivative works, distribute, and
-otherwise use the Software alone or in any derivative version,
-provided, however, that the BeOpen Python License is retained in the
-Software, alone or in any derivative version prepared by Licensee.
-
-3. BeOpen is making the Software available to Licensee on an "AS IS"
-basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
-SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
-AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
-DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-5. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-6. This License Agreement shall be governed by and interpreted in all
-respects by the law of the State of California, excluding conflict of
-law provisions. Nothing in this License Agreement shall be deemed to
-create any relationship of agency, partnership, or joint venture
-between BeOpen and Licensee. This License Agreement does not grant
-permission to use BeOpen trademarks or trade names in a trademark
-sense to endorse or promote products or services of Licensee, or any
-third party. As an exception, the "BeOpen Python" logos available at
-http://www.pythonlabs.com/logos.html may be used according to the
-permissions granted on that web page.
-
-7. By copying, installing or otherwise using the software, Licensee
-agrees to be bound by the terms and conditions of this License
-Agreement.
-
-
-CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
----------------------------------------
-
-1. This LICENSE AGREEMENT is between the Corporation for National
-Research Initiatives, having an office at 1895 Preston White Drive,
-Reston, VA 20191 ("CNRI"), and the Individual or Organization
-("Licensee") accessing and otherwise using Python 1.6.1 software in
-source or binary form and its associated documentation.
-
-2. Subject to the terms and conditions of this License Agreement, CNRI
-hereby grants Licensee a nonexclusive, royalty-free, world-wide
-license to reproduce, analyze, test, perform and/or display publicly,
-prepare derivative works, distribute, and otherwise use Python 1.6.1
-alone or in any derivative version, provided, however, that CNRI's
-License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
-1995-2001 Corporation for National Research Initiatives; All Rights
-Reserved" are retained in Python 1.6.1 alone or in any derivative
-version prepared by Licensee. Alternately, in lieu of CNRI's License
-Agreement, Licensee may substitute the following text (omitting the
-quotes): "Python 1.6.1 is made available subject to the terms and
-conditions in CNRI's License Agreement. This Agreement together with
-Python 1.6.1 may be located on the Internet using the following
-unique, persistent identifier (known as a handle): 1895.22/1013. This
-Agreement may also be obtained from a proxy server on the Internet
-using the following URL: http://hdl.handle.net/1895.22/1013".
-
-3. In the event Licensee prepares a derivative work that is based on
-or incorporates Python 1.6.1 or any part thereof, and wants to make
-the derivative work available to others as provided herein, then
-Licensee hereby agrees to include in any such work a brief summary of
-the changes made to Python 1.6.1.
-
-4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
-basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
-1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
-A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
-OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-6. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-7. This License Agreement shall be governed by the federal
-intellectual property law of the United States, including without
-limitation the federal copyright law, and, to the extent such
-U.S. federal law does not apply, by the law of the Commonwealth of
-Virginia, excluding Virginia's conflict of law provisions.
-Notwithstanding the foregoing, with regard to derivative works based
-on Python 1.6.1 that incorporate non-separable material that was
-previously distributed under the GNU General Public License (GPL), the
-law of the Commonwealth of Virginia shall govern this License
-Agreement only as to issues arising under or with respect to
-Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
-License Agreement shall be deemed to create any relationship of
-agency, partnership, or joint venture between CNRI and Licensee. This
-License Agreement does not grant permission to use CNRI trademarks or
-trade name in a trademark sense to endorse or promote products or
-services of Licensee, or any third party.
-
-8. By clicking on the "ACCEPT" button where indicated, or by copying,
-installing or otherwise using Python 1.6.1, Licensee agrees to be
-bound by the terms and conditions of this License Agreement.
-
- ACCEPT
-
-
-CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
---------------------------------------------------
-
-Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
-The Netherlands. All rights reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-
-Additional Conditions for this Windows binary build
----------------------------------------------------
-
-This program is linked with and uses Microsoft Distributable Code,
-copyrighted by Microsoft Corporation. The Microsoft Distributable Code
-is embedded in each .exe, .dll and .pyd file as a result of running
-the code through a linker.
-
-If you further distribute programs that include the Microsoft
-Distributable Code, you must comply with the restrictions on
-distribution specified by Microsoft. In particular, you must require
-distributors and external end users to agree to terms that protect the
-Microsoft Distributable Code at least as much as Microsoft's own
-requirements for the Distributable Code. See Microsoft's documentation
-(included in its developer tools and on its website at microsoft.com)
-for specific details.
-
-Redistribution of the Windows binary build of the Python interpreter
-complies with this agreement, provided that you do not:
-
-- alter any copyright, trademark or patent notice in Microsoft's
-Distributable Code;
-
-- use Microsoft's trademarks in your programs' names or in a way that
-suggests your programs come from or are endorsed by Microsoft;
-
-- distribute Microsoft's Distributable Code to run on a platform other
-than Microsoft operating systems, run-time technologies or application
-platforms; or
-
-- include Microsoft Distributable Code in malicious, deceptive or
-unlawful programs.
-
-These restrictions apply only to the Microsoft Distributable Code as
-defined above, not to Python itself or any programs running on the
-Python interpreter. The redistribution of the Python interpreter and
-libraries is governed by the Python Software License included with this
-file, or by other licenses as marked.
-
-
-
---------------------------------------------------------------------------
-
-This program, "bzip2", the associated library "libbzip2", and all
-documentation, are copyright (C) 1996-2010 Julian R Seward. All
-rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. The origin of this software must not be misrepresented; you must
- not claim that you wrote the original software. If you use this
- software in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
-
-3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
-4. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Julian Seward, jseward@bzip.org
-bzip2/libbzip2 version 1.0.6 of 6 September 2010
-
---------------------------------------------------------------------------
-
-
- LICENSE ISSUES
- ==============
-
- The OpenSSL toolkit stays under a double license, i.e. both the conditions of
- the OpenSSL License and the original SSLeay license apply to the toolkit.
- See below for the actual license texts.
-
- OpenSSL License
- ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-
-This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
-Corporation and other parties. The following terms apply to all files
-associated with the software unless explicitly disclaimed in
-individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-GOVERNMENT USE: If you are acquiring this software on behalf of the
-U.S. government, the Government shall have only "Restricted Rights"
-in the software and related documentation as defined in the Federal
-Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
-are acquiring the software on behalf of the Department of Defense, the
-software shall be classified as "Commercial Computer Software" and the
-Government shall have only "Restricted Rights" as defined in Clause
-252.227-7014 (b) (3) of DFARs. Notwithstanding the foregoing, the
-authors grant the U.S. Government and others acting in its behalf
-permission to use and distribute the software in accordance with the
-terms specified in this license.
-
-This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
-Corporation, Apple Inc. and other parties. The following terms apply to
-all files associated with the software unless explicitly disclaimed in
-individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-GOVERNMENT USE: If you are acquiring this software on behalf of the
-U.S. government, the Government shall have only "Restricted Rights"
-in the software and related documentation as defined in the Federal
-Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
-are acquiring the software on behalf of the Department of Defense, the
-software shall be classified as "Commercial Computer Software" and the
-Government shall have only "Restricted Rights" as defined in Clause
-252.227-7013 (b) (3) of DFARs. Notwithstanding the foregoing, the
-authors grant the U.S. Government and others acting in its behalf
-permission to use and distribute the software in accordance with the
-terms specified in this license.
-
-Copyright (c) 1993-1999 Ioi Kim Lam.
-Copyright (c) 2000-2001 Tix Project Group.
-Copyright (c) 2004 ActiveState
-
-This software is copyrighted by the above entities
-and other parties. The following terms apply to all files associated
-with the software unless explicitly disclaimed in individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-GOVERNMENT USE: If you are acquiring this software on behalf of the
-U.S. government, the Government shall have only "Restricted Rights"
-in the software and related documentation as defined in the Federal
-Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
-are acquiring the software on behalf of the Department of Defense, the
-software shall be classified as "Commercial Computer Software" and the
-Government shall have only "Restricted Rights" as defined in Clause
-252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
-authors grant the U.S. Government and others acting in its behalf
-permission to use and distribute the software in accordance with the
-terms specified in this license.
-
-----------------------------------------------------------------------
-
-Parts of this software are based on the Tcl/Tk software copyrighted by
-the Regents of the University of California, Sun Microsystems, Inc.,
-and other parties. The original license terms of the Tcl/Tk software
-distribution is included in the file docs/license.tcltk.
-
-Parts of this software are based on the HTML Library software
-copyrighted by Sun Microsystems, Inc. The original license terms of
-the HTML Library software distribution is included in the file
-docs/license.html_lib.
-
diff --git a/EasyTrans/Lib/__future__.py b/EasyTrans/Lib/__future__.py
deleted file mode 100644
index ce8bed7a..00000000
--- a/EasyTrans/Lib/__future__.py
+++ /dev/null
@@ -1,146 +0,0 @@
-"""Record of phased-in incompatible language changes.
-
-Each line is of the form:
-
- FeatureName = "_Feature(" OptionalRelease "," MandatoryRelease ","
- CompilerFlag ")"
-
-where, normally, OptionalRelease < MandatoryRelease, and both are 5-tuples
-of the same form as sys.version_info:
-
- (PY_MAJOR_VERSION, # the 2 in 2.1.0a3; an int
- PY_MINOR_VERSION, # the 1; an int
- PY_MICRO_VERSION, # the 0; an int
- PY_RELEASE_LEVEL, # "alpha", "beta", "candidate" or "final"; string
- PY_RELEASE_SERIAL # the 3; an int
- )
-
-OptionalRelease records the first release in which
-
- from __future__ import FeatureName
-
-was accepted.
-
-In the case of MandatoryReleases that have not yet occurred,
-MandatoryRelease predicts the release in which the feature will become part
-of the language.
-
-Else MandatoryRelease records when the feature became part of the language;
-in releases at or after that, modules no longer need
-
- from __future__ import FeatureName
-
-to use the feature in question, but may continue to use such imports.
-
-MandatoryRelease may also be None, meaning that a planned feature got
-dropped.
-
-Instances of class _Feature have two corresponding methods,
-.getOptionalRelease() and .getMandatoryRelease().
-
-CompilerFlag is the (bitfield) flag that should be passed in the fourth
-argument to the builtin function compile() to enable the feature in
-dynamically compiled code. This flag is stored in the .compiler_flag
-attribute on _Future instances. These values must match the appropriate
-#defines of CO_xxx flags in Include/compile.h.
-
-No feature line is ever to be deleted from this file.
-"""
-
-all_feature_names = [
- "nested_scopes",
- "generators",
- "division",
- "absolute_import",
- "with_statement",
- "print_function",
- "unicode_literals",
- "barry_as_FLUFL",
- "generator_stop",
- "annotations",
-]
-
-__all__ = ["all_feature_names"] + all_feature_names
-
-# The CO_xxx symbols are defined here under the same names defined in
-# code.h and used by compile.h, so that an editor search will find them here.
-# However, they're not exported in __all__, because they don't really belong to
-# this module.
-CO_NESTED = 0x0010 # nested_scopes
-CO_GENERATOR_ALLOWED = 0 # generators (obsolete, was 0x1000)
-CO_FUTURE_DIVISION = 0x2000 # division
-CO_FUTURE_ABSOLUTE_IMPORT = 0x4000 # perform absolute imports by default
-CO_FUTURE_WITH_STATEMENT = 0x8000 # with statement
-CO_FUTURE_PRINT_FUNCTION = 0x10000 # print function
-CO_FUTURE_UNICODE_LITERALS = 0x20000 # unicode string literals
-CO_FUTURE_BARRY_AS_BDFL = 0x40000
-CO_FUTURE_GENERATOR_STOP = 0x80000 # StopIteration becomes RuntimeError in generators
-CO_FUTURE_ANNOTATIONS = 0x100000 # annotations become strings at runtime
-
-class _Feature:
- def __init__(self, optionalRelease, mandatoryRelease, compiler_flag):
- self.optional = optionalRelease
- self.mandatory = mandatoryRelease
- self.compiler_flag = compiler_flag
-
- def getOptionalRelease(self):
- """Return first release in which this feature was recognized.
-
- This is a 5-tuple, of the same form as sys.version_info.
- """
-
- return self.optional
-
- def getMandatoryRelease(self):
- """Return release in which this feature will become mandatory.
-
- This is a 5-tuple, of the same form as sys.version_info, or, if
- the feature was dropped, is None.
- """
-
- return self.mandatory
-
- def __repr__(self):
- return "_Feature" + repr((self.optional,
- self.mandatory,
- self.compiler_flag))
-
-nested_scopes = _Feature((2, 1, 0, "beta", 1),
- (2, 2, 0, "alpha", 0),
- CO_NESTED)
-
-generators = _Feature((2, 2, 0, "alpha", 1),
- (2, 3, 0, "final", 0),
- CO_GENERATOR_ALLOWED)
-
-division = _Feature((2, 2, 0, "alpha", 2),
- (3, 0, 0, "alpha", 0),
- CO_FUTURE_DIVISION)
-
-absolute_import = _Feature((2, 5, 0, "alpha", 1),
- (3, 0, 0, "alpha", 0),
- CO_FUTURE_ABSOLUTE_IMPORT)
-
-with_statement = _Feature((2, 5, 0, "alpha", 1),
- (2, 6, 0, "alpha", 0),
- CO_FUTURE_WITH_STATEMENT)
-
-print_function = _Feature((2, 6, 0, "alpha", 2),
- (3, 0, 0, "alpha", 0),
- CO_FUTURE_PRINT_FUNCTION)
-
-unicode_literals = _Feature((2, 6, 0, "alpha", 2),
- (3, 0, 0, "alpha", 0),
- CO_FUTURE_UNICODE_LITERALS)
-
-barry_as_FLUFL = _Feature((3, 1, 0, "alpha", 2),
- (3, 9, 0, "alpha", 0),
- CO_FUTURE_BARRY_AS_BDFL)
-
-generator_stop = _Feature((3, 5, 0, "beta", 1),
- (3, 7, 0, "alpha", 0),
- CO_FUTURE_GENERATOR_STOP)
-
-annotations = _Feature((3, 7, 0, "beta", 1),
- (4, 0, 0, "alpha", 0),
- CO_FUTURE_ANNOTATIONS)
diff --git a/EasyTrans/Lib/__pycache__/__future__.cpython-37.pyc b/EasyTrans/Lib/__pycache__/__future__.cpython-37.pyc
deleted file mode 100644
index 922dad1c..00000000
Binary files a/EasyTrans/Lib/__pycache__/__future__.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/_bootlocale.cpython-37.pyc b/EasyTrans/Lib/__pycache__/_bootlocale.cpython-37.pyc
deleted file mode 100644
index 493eee53..00000000
Binary files a/EasyTrans/Lib/__pycache__/_bootlocale.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/_collections_abc.cpython-37.pyc b/EasyTrans/Lib/__pycache__/_collections_abc.cpython-37.pyc
deleted file mode 100644
index 1bcdc60a..00000000
Binary files a/EasyTrans/Lib/__pycache__/_collections_abc.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/_weakrefset.cpython-37.pyc b/EasyTrans/Lib/__pycache__/_weakrefset.cpython-37.pyc
deleted file mode 100644
index c06aebc4..00000000
Binary files a/EasyTrans/Lib/__pycache__/_weakrefset.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/abc.cpython-37.pyc b/EasyTrans/Lib/__pycache__/abc.cpython-37.pyc
deleted file mode 100644
index 65a5a8d8..00000000
Binary files a/EasyTrans/Lib/__pycache__/abc.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/base64.cpython-37.pyc b/EasyTrans/Lib/__pycache__/base64.cpython-37.pyc
deleted file mode 100644
index b6ddf097..00000000
Binary files a/EasyTrans/Lib/__pycache__/base64.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/bisect.cpython-37.pyc b/EasyTrans/Lib/__pycache__/bisect.cpython-37.pyc
deleted file mode 100644
index fabb7351..00000000
Binary files a/EasyTrans/Lib/__pycache__/bisect.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/codecs.cpython-37.pyc b/EasyTrans/Lib/__pycache__/codecs.cpython-37.pyc
deleted file mode 100644
index 4fbf238e..00000000
Binary files a/EasyTrans/Lib/__pycache__/codecs.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/copy.cpython-37.pyc b/EasyTrans/Lib/__pycache__/copy.cpython-37.pyc
deleted file mode 100644
index b5fa4300..00000000
Binary files a/EasyTrans/Lib/__pycache__/copy.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/copyreg.cpython-37.pyc b/EasyTrans/Lib/__pycache__/copyreg.cpython-37.pyc
deleted file mode 100644
index bca48e6d..00000000
Binary files a/EasyTrans/Lib/__pycache__/copyreg.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/enum.cpython-37.pyc b/EasyTrans/Lib/__pycache__/enum.cpython-37.pyc
deleted file mode 100644
index 9eb17c4d..00000000
Binary files a/EasyTrans/Lib/__pycache__/enum.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/fnmatch.cpython-37.pyc b/EasyTrans/Lib/__pycache__/fnmatch.cpython-37.pyc
deleted file mode 100644
index 34bb1b19..00000000
Binary files a/EasyTrans/Lib/__pycache__/fnmatch.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/functools.cpython-37.pyc b/EasyTrans/Lib/__pycache__/functools.cpython-37.pyc
deleted file mode 100644
index bbd11cb8..00000000
Binary files a/EasyTrans/Lib/__pycache__/functools.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/genericpath.cpython-37.pyc b/EasyTrans/Lib/__pycache__/genericpath.cpython-37.pyc
deleted file mode 100644
index 227a8077..00000000
Binary files a/EasyTrans/Lib/__pycache__/genericpath.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/hashlib.cpython-37.pyc b/EasyTrans/Lib/__pycache__/hashlib.cpython-37.pyc
deleted file mode 100644
index a1d1fd73..00000000
Binary files a/EasyTrans/Lib/__pycache__/hashlib.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/heapq.cpython-37.pyc b/EasyTrans/Lib/__pycache__/heapq.cpython-37.pyc
deleted file mode 100644
index ada100d4..00000000
Binary files a/EasyTrans/Lib/__pycache__/heapq.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/hmac.cpython-37.pyc b/EasyTrans/Lib/__pycache__/hmac.cpython-37.pyc
deleted file mode 100644
index 47ac04d1..00000000
Binary files a/EasyTrans/Lib/__pycache__/hmac.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/io.cpython-37.pyc b/EasyTrans/Lib/__pycache__/io.cpython-37.pyc
deleted file mode 100644
index dbaf7a01..00000000
Binary files a/EasyTrans/Lib/__pycache__/io.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/keyword.cpython-37.pyc b/EasyTrans/Lib/__pycache__/keyword.cpython-37.pyc
deleted file mode 100644
index fc57c5c0..00000000
Binary files a/EasyTrans/Lib/__pycache__/keyword.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/linecache.cpython-37.pyc b/EasyTrans/Lib/__pycache__/linecache.cpython-37.pyc
deleted file mode 100644
index a3ea3164..00000000
Binary files a/EasyTrans/Lib/__pycache__/linecache.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/locale.cpython-37.pyc b/EasyTrans/Lib/__pycache__/locale.cpython-37.pyc
deleted file mode 100644
index 4e13eaed..00000000
Binary files a/EasyTrans/Lib/__pycache__/locale.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/ntpath.cpython-37.pyc b/EasyTrans/Lib/__pycache__/ntpath.cpython-37.pyc
deleted file mode 100644
index af30426b..00000000
Binary files a/EasyTrans/Lib/__pycache__/ntpath.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/operator.cpython-37.pyc b/EasyTrans/Lib/__pycache__/operator.cpython-37.pyc
deleted file mode 100644
index 25ecdbf6..00000000
Binary files a/EasyTrans/Lib/__pycache__/operator.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/os.cpython-37.pyc b/EasyTrans/Lib/__pycache__/os.cpython-37.pyc
deleted file mode 100644
index 3a73e15a..00000000
Binary files a/EasyTrans/Lib/__pycache__/os.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/posixpath.cpython-37.pyc b/EasyTrans/Lib/__pycache__/posixpath.cpython-37.pyc
deleted file mode 100644
index 3233638f..00000000
Binary files a/EasyTrans/Lib/__pycache__/posixpath.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/random.cpython-37.pyc b/EasyTrans/Lib/__pycache__/random.cpython-37.pyc
deleted file mode 100644
index 44e3aeb1..00000000
Binary files a/EasyTrans/Lib/__pycache__/random.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/re.cpython-37.pyc b/EasyTrans/Lib/__pycache__/re.cpython-37.pyc
deleted file mode 100644
index ba33cffd..00000000
Binary files a/EasyTrans/Lib/__pycache__/re.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/reprlib.cpython-37.pyc b/EasyTrans/Lib/__pycache__/reprlib.cpython-37.pyc
deleted file mode 100644
index af55ad17..00000000
Binary files a/EasyTrans/Lib/__pycache__/reprlib.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/shutil.cpython-37.pyc b/EasyTrans/Lib/__pycache__/shutil.cpython-37.pyc
deleted file mode 100644
index 57ab417f..00000000
Binary files a/EasyTrans/Lib/__pycache__/shutil.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/site.cpython-37.pyc b/EasyTrans/Lib/__pycache__/site.cpython-37.pyc
deleted file mode 100644
index 96607cb7..00000000
Binary files a/EasyTrans/Lib/__pycache__/site.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/sre_compile.cpython-37.pyc b/EasyTrans/Lib/__pycache__/sre_compile.cpython-37.pyc
deleted file mode 100644
index f1e9133a..00000000
Binary files a/EasyTrans/Lib/__pycache__/sre_compile.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/sre_constants.cpython-37.pyc b/EasyTrans/Lib/__pycache__/sre_constants.cpython-37.pyc
deleted file mode 100644
index e07b28d8..00000000
Binary files a/EasyTrans/Lib/__pycache__/sre_constants.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/sre_parse.cpython-37.pyc b/EasyTrans/Lib/__pycache__/sre_parse.cpython-37.pyc
deleted file mode 100644
index f4c53589..00000000
Binary files a/EasyTrans/Lib/__pycache__/sre_parse.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/stat.cpython-37.pyc b/EasyTrans/Lib/__pycache__/stat.cpython-37.pyc
deleted file mode 100644
index b66a712d..00000000
Binary files a/EasyTrans/Lib/__pycache__/stat.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/struct.cpython-37.pyc b/EasyTrans/Lib/__pycache__/struct.cpython-37.pyc
deleted file mode 100644
index d7c3c635..00000000
Binary files a/EasyTrans/Lib/__pycache__/struct.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/tarfile.cpython-37.pyc b/EasyTrans/Lib/__pycache__/tarfile.cpython-37.pyc
deleted file mode 100644
index 4df05191..00000000
Binary files a/EasyTrans/Lib/__pycache__/tarfile.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/tempfile.cpython-37.pyc b/EasyTrans/Lib/__pycache__/tempfile.cpython-37.pyc
deleted file mode 100644
index 391988fa..00000000
Binary files a/EasyTrans/Lib/__pycache__/tempfile.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/token.cpython-37.pyc b/EasyTrans/Lib/__pycache__/token.cpython-37.pyc
deleted file mode 100644
index 831bde6e..00000000
Binary files a/EasyTrans/Lib/__pycache__/token.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/tokenize.cpython-37.pyc b/EasyTrans/Lib/__pycache__/tokenize.cpython-37.pyc
deleted file mode 100644
index cdc69b55..00000000
Binary files a/EasyTrans/Lib/__pycache__/tokenize.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/types.cpython-37.pyc b/EasyTrans/Lib/__pycache__/types.cpython-37.pyc
deleted file mode 100644
index 91bc67c3..00000000
Binary files a/EasyTrans/Lib/__pycache__/types.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/warnings.cpython-37.pyc b/EasyTrans/Lib/__pycache__/warnings.cpython-37.pyc
deleted file mode 100644
index a92fdd67..00000000
Binary files a/EasyTrans/Lib/__pycache__/warnings.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/__pycache__/weakref.cpython-37.pyc b/EasyTrans/Lib/__pycache__/weakref.cpython-37.pyc
deleted file mode 100644
index d1e115eb..00000000
Binary files a/EasyTrans/Lib/__pycache__/weakref.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/_bootlocale.py b/EasyTrans/Lib/_bootlocale.py
deleted file mode 100644
index 3273a3b4..00000000
--- a/EasyTrans/Lib/_bootlocale.py
+++ /dev/null
@@ -1,46 +0,0 @@
-"""A minimal subset of the locale module used at interpreter startup
-(imported by the _io module), in order to reduce startup time.
-
-Don't import directly from third-party code; use the `locale` module instead!
-"""
-
-import sys
-import _locale
-
-if sys.platform.startswith("win"):
- def getpreferredencoding(do_setlocale=True):
- if sys.flags.utf8_mode:
- return 'UTF-8'
- return _locale._getdefaultlocale()[1]
-else:
- try:
- _locale.CODESET
- except AttributeError:
- if hasattr(sys, 'getandroidapilevel'):
- # On Android langinfo.h and CODESET are missing, and UTF-8 is
- # always used in mbstowcs() and wcstombs().
- def getpreferredencoding(do_setlocale=True):
- return 'UTF-8'
- else:
- def getpreferredencoding(do_setlocale=True):
- if sys.flags.utf8_mode:
- return 'UTF-8'
- # This path for legacy systems needs the more complex
- # getdefaultlocale() function, import the full locale module.
- import locale
- return locale.getpreferredencoding(do_setlocale)
- else:
- def getpreferredencoding(do_setlocale=True):
- assert not do_setlocale
- if sys.flags.utf8_mode:
- return 'UTF-8'
- result = _locale.nl_langinfo(_locale.CODESET)
- if not result and sys.platform == 'darwin':
- # nl_langinfo can return an empty string
- # when the setting has an invalid value.
- # Default to UTF-8 in that case because
- # UTF-8 is the default charset on OSX and
- # returning nothing will crash the
- # interpreter.
- result = 'UTF-8'
- return result
diff --git a/EasyTrans/Lib/_collections_abc.py b/EasyTrans/Lib/_collections_abc.py
deleted file mode 100644
index dbe30dff..00000000
--- a/EasyTrans/Lib/_collections_abc.py
+++ /dev/null
@@ -1,1011 +0,0 @@
-# Copyright 2007 Google, Inc. All Rights Reserved.
-# Licensed to PSF under a Contributor Agreement.
-
-"""Abstract Base Classes (ABCs) for collections, according to PEP 3119.
-
-Unit tests are in test_collections.
-"""
-
-from abc import ABCMeta, abstractmethod
-import sys
-
-__all__ = ["Awaitable", "Coroutine",
- "AsyncIterable", "AsyncIterator", "AsyncGenerator",
- "Hashable", "Iterable", "Iterator", "Generator", "Reversible",
- "Sized", "Container", "Callable", "Collection",
- "Set", "MutableSet",
- "Mapping", "MutableMapping",
- "MappingView", "KeysView", "ItemsView", "ValuesView",
- "Sequence", "MutableSequence",
- "ByteString",
- ]
-
-# This module has been renamed from collections.abc to _collections_abc to
-# speed up interpreter startup. Some of the types such as MutableMapping are
-# required early but collections module imports a lot of other modules.
-# See issue #19218
-__name__ = "collections.abc"
-
-# Private list of types that we want to register with the various ABCs
-# so that they will pass tests like:
-# it = iter(somebytearray)
-# assert isinstance(it, Iterable)
-# Note: in other implementations, these types might not be distinct
-# and they may have their own implementation specific types that
-# are not included on this list.
-bytes_iterator = type(iter(b''))
-bytearray_iterator = type(iter(bytearray()))
-#callable_iterator = ???
-dict_keyiterator = type(iter({}.keys()))
-dict_valueiterator = type(iter({}.values()))
-dict_itemiterator = type(iter({}.items()))
-list_iterator = type(iter([]))
-list_reverseiterator = type(iter(reversed([])))
-range_iterator = type(iter(range(0)))
-longrange_iterator = type(iter(range(1 << 1000)))
-set_iterator = type(iter(set()))
-str_iterator = type(iter(""))
-tuple_iterator = type(iter(()))
-zip_iterator = type(iter(zip()))
-## views ##
-dict_keys = type({}.keys())
-dict_values = type({}.values())
-dict_items = type({}.items())
-## misc ##
-mappingproxy = type(type.__dict__)
-generator = type((lambda: (yield))())
-## coroutine ##
-async def _coro(): pass
-_coro = _coro()
-coroutine = type(_coro)
-_coro.close() # Prevent ResourceWarning
-del _coro
-## asynchronous generator ##
-async def _ag(): yield
-_ag = _ag()
-async_generator = type(_ag)
-del _ag
-
-
-### ONE-TRICK PONIES ###
-
-def _check_methods(C, *methods):
- mro = C.__mro__
- for method in methods:
- for B in mro:
- if method in B.__dict__:
- if B.__dict__[method] is None:
- return NotImplemented
- break
- else:
- return NotImplemented
- return True
-
-class Hashable(metaclass=ABCMeta):
-
- __slots__ = ()
-
- @abstractmethod
- def __hash__(self):
- return 0
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is Hashable:
- return _check_methods(C, "__hash__")
- return NotImplemented
-
-
-class Awaitable(metaclass=ABCMeta):
-
- __slots__ = ()
-
- @abstractmethod
- def __await__(self):
- yield
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is Awaitable:
- return _check_methods(C, "__await__")
- return NotImplemented
-
-
-class Coroutine(Awaitable):
-
- __slots__ = ()
-
- @abstractmethod
- def send(self, value):
- """Send a value into the coroutine.
- Return next yielded value or raise StopIteration.
- """
- raise StopIteration
-
- @abstractmethod
- def throw(self, typ, val=None, tb=None):
- """Raise an exception in the coroutine.
- Return next yielded value or raise StopIteration.
- """
- if val is None:
- if tb is None:
- raise typ
- val = typ()
- if tb is not None:
- val = val.with_traceback(tb)
- raise val
-
- def close(self):
- """Raise GeneratorExit inside coroutine.
- """
- try:
- self.throw(GeneratorExit)
- except (GeneratorExit, StopIteration):
- pass
- else:
- raise RuntimeError("coroutine ignored GeneratorExit")
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is Coroutine:
- return _check_methods(C, '__await__', 'send', 'throw', 'close')
- return NotImplemented
-
-
-Coroutine.register(coroutine)
-
-
-class AsyncIterable(metaclass=ABCMeta):
-
- __slots__ = ()
-
- @abstractmethod
- def __aiter__(self):
- return AsyncIterator()
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is AsyncIterable:
- return _check_methods(C, "__aiter__")
- return NotImplemented
-
-
-class AsyncIterator(AsyncIterable):
-
- __slots__ = ()
-
- @abstractmethod
- async def __anext__(self):
- """Return the next item or raise StopAsyncIteration when exhausted."""
- raise StopAsyncIteration
-
- def __aiter__(self):
- return self
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is AsyncIterator:
- return _check_methods(C, "__anext__", "__aiter__")
- return NotImplemented
-
-
-class AsyncGenerator(AsyncIterator):
-
- __slots__ = ()
-
- async def __anext__(self):
- """Return the next item from the asynchronous generator.
- When exhausted, raise StopAsyncIteration.
- """
- return await self.asend(None)
-
- @abstractmethod
- async def asend(self, value):
- """Send a value into the asynchronous generator.
- Return next yielded value or raise StopAsyncIteration.
- """
- raise StopAsyncIteration
-
- @abstractmethod
- async def athrow(self, typ, val=None, tb=None):
- """Raise an exception in the asynchronous generator.
- Return next yielded value or raise StopAsyncIteration.
- """
- if val is None:
- if tb is None:
- raise typ
- val = typ()
- if tb is not None:
- val = val.with_traceback(tb)
- raise val
-
- async def aclose(self):
- """Raise GeneratorExit inside coroutine.
- """
- try:
- await self.athrow(GeneratorExit)
- except (GeneratorExit, StopAsyncIteration):
- pass
- else:
- raise RuntimeError("asynchronous generator ignored GeneratorExit")
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is AsyncGenerator:
- return _check_methods(C, '__aiter__', '__anext__',
- 'asend', 'athrow', 'aclose')
- return NotImplemented
-
-
-AsyncGenerator.register(async_generator)
-
-
-class Iterable(metaclass=ABCMeta):
-
- __slots__ = ()
-
- @abstractmethod
- def __iter__(self):
- while False:
- yield None
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is Iterable:
- return _check_methods(C, "__iter__")
- return NotImplemented
-
-
-class Iterator(Iterable):
-
- __slots__ = ()
-
- @abstractmethod
- def __next__(self):
- 'Return the next item from the iterator. When exhausted, raise StopIteration'
- raise StopIteration
-
- def __iter__(self):
- return self
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is Iterator:
- return _check_methods(C, '__iter__', '__next__')
- return NotImplemented
-
-Iterator.register(bytes_iterator)
-Iterator.register(bytearray_iterator)
-#Iterator.register(callable_iterator)
-Iterator.register(dict_keyiterator)
-Iterator.register(dict_valueiterator)
-Iterator.register(dict_itemiterator)
-Iterator.register(list_iterator)
-Iterator.register(list_reverseiterator)
-Iterator.register(range_iterator)
-Iterator.register(longrange_iterator)
-Iterator.register(set_iterator)
-Iterator.register(str_iterator)
-Iterator.register(tuple_iterator)
-Iterator.register(zip_iterator)
-
-
-class Reversible(Iterable):
-
- __slots__ = ()
-
- @abstractmethod
- def __reversed__(self):
- while False:
- yield None
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is Reversible:
- return _check_methods(C, "__reversed__", "__iter__")
- return NotImplemented
-
-
-class Generator(Iterator):
-
- __slots__ = ()
-
- def __next__(self):
- """Return the next item from the generator.
- When exhausted, raise StopIteration.
- """
- return self.send(None)
-
- @abstractmethod
- def send(self, value):
- """Send a value into the generator.
- Return next yielded value or raise StopIteration.
- """
- raise StopIteration
-
- @abstractmethod
- def throw(self, typ, val=None, tb=None):
- """Raise an exception in the generator.
- Return next yielded value or raise StopIteration.
- """
- if val is None:
- if tb is None:
- raise typ
- val = typ()
- if tb is not None:
- val = val.with_traceback(tb)
- raise val
-
- def close(self):
- """Raise GeneratorExit inside generator.
- """
- try:
- self.throw(GeneratorExit)
- except (GeneratorExit, StopIteration):
- pass
- else:
- raise RuntimeError("generator ignored GeneratorExit")
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is Generator:
- return _check_methods(C, '__iter__', '__next__',
- 'send', 'throw', 'close')
- return NotImplemented
-
-Generator.register(generator)
-
-
-class Sized(metaclass=ABCMeta):
-
- __slots__ = ()
-
- @abstractmethod
- def __len__(self):
- return 0
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is Sized:
- return _check_methods(C, "__len__")
- return NotImplemented
-
-
-class Container(metaclass=ABCMeta):
-
- __slots__ = ()
-
- @abstractmethod
- def __contains__(self, x):
- return False
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is Container:
- return _check_methods(C, "__contains__")
- return NotImplemented
-
-class Collection(Sized, Iterable, Container):
-
- __slots__ = ()
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is Collection:
- return _check_methods(C, "__len__", "__iter__", "__contains__")
- return NotImplemented
-
-class Callable(metaclass=ABCMeta):
-
- __slots__ = ()
-
- @abstractmethod
- def __call__(self, *args, **kwds):
- return False
-
- @classmethod
- def __subclasshook__(cls, C):
- if cls is Callable:
- return _check_methods(C, "__call__")
- return NotImplemented
-
-
-### SETS ###
-
-
-class Set(Collection):
-
- """A set is a finite, iterable container.
-
- This class provides concrete generic implementations of all
- methods except for __contains__, __iter__ and __len__.
-
- To override the comparisons (presumably for speed, as the
- semantics are fixed), redefine __le__ and __ge__,
- then the other operations will automatically follow suit.
- """
-
- __slots__ = ()
-
- def __le__(self, other):
- if not isinstance(other, Set):
- return NotImplemented
- if len(self) > len(other):
- return False
- for elem in self:
- if elem not in other:
- return False
- return True
-
- def __lt__(self, other):
- if not isinstance(other, Set):
- return NotImplemented
- return len(self) < len(other) and self.__le__(other)
-
- def __gt__(self, other):
- if not isinstance(other, Set):
- return NotImplemented
- return len(self) > len(other) and self.__ge__(other)
-
- def __ge__(self, other):
- if not isinstance(other, Set):
- return NotImplemented
- if len(self) < len(other):
- return False
- for elem in other:
- if elem not in self:
- return False
- return True
-
- def __eq__(self, other):
- if not isinstance(other, Set):
- return NotImplemented
- return len(self) == len(other) and self.__le__(other)
-
- @classmethod
- def _from_iterable(cls, it):
- '''Construct an instance of the class from any iterable input.
-
- Must override this method if the class constructor signature
- does not accept an iterable for an input.
- '''
- return cls(it)
-
- def __and__(self, other):
- if not isinstance(other, Iterable):
- return NotImplemented
- return self._from_iterable(value for value in other if value in self)
-
- __rand__ = __and__
-
- def isdisjoint(self, other):
- 'Return True if two sets have a null intersection.'
- for value in other:
- if value in self:
- return False
- return True
-
- def __or__(self, other):
- if not isinstance(other, Iterable):
- return NotImplemented
- chain = (e for s in (self, other) for e in s)
- return self._from_iterable(chain)
-
- __ror__ = __or__
-
- def __sub__(self, other):
- if not isinstance(other, Set):
- if not isinstance(other, Iterable):
- return NotImplemented
- other = self._from_iterable(other)
- return self._from_iterable(value for value in self
- if value not in other)
-
- def __rsub__(self, other):
- if not isinstance(other, Set):
- if not isinstance(other, Iterable):
- return NotImplemented
- other = self._from_iterable(other)
- return self._from_iterable(value for value in other
- if value not in self)
-
- def __xor__(self, other):
- if not isinstance(other, Set):
- if not isinstance(other, Iterable):
- return NotImplemented
- other = self._from_iterable(other)
- return (self - other) | (other - self)
-
- __rxor__ = __xor__
-
- def _hash(self):
- """Compute the hash value of a set.
-
- Note that we don't define __hash__: not all sets are hashable.
- But if you define a hashable set type, its __hash__ should
- call this function.
-
- This must be compatible __eq__.
-
- All sets ought to compare equal if they contain the same
- elements, regardless of how they are implemented, and
- regardless of the order of the elements; so there's not much
- freedom for __eq__ or __hash__. We match the algorithm used
- by the built-in frozenset type.
- """
- MAX = sys.maxsize
- MASK = 2 * MAX + 1
- n = len(self)
- h = 1927868237 * (n + 1)
- h &= MASK
- for x in self:
- hx = hash(x)
- h ^= (hx ^ (hx << 16) ^ 89869747) * 3644798167
- h &= MASK
- h = h * 69069 + 907133923
- h &= MASK
- if h > MAX:
- h -= MASK + 1
- if h == -1:
- h = 590923713
- return h
-
-Set.register(frozenset)
-
-
-class MutableSet(Set):
- """A mutable set is a finite, iterable container.
-
- This class provides concrete generic implementations of all
- methods except for __contains__, __iter__, __len__,
- add(), and discard().
-
- To override the comparisons (presumably for speed, as the
- semantics are fixed), all you have to do is redefine __le__ and
- then the other operations will automatically follow suit.
- """
-
- __slots__ = ()
-
- @abstractmethod
- def add(self, value):
- """Add an element."""
- raise NotImplementedError
-
- @abstractmethod
- def discard(self, value):
- """Remove an element. Do not raise an exception if absent."""
- raise NotImplementedError
-
- def remove(self, value):
- """Remove an element. If not a member, raise a KeyError."""
- if value not in self:
- raise KeyError(value)
- self.discard(value)
-
- def pop(self):
- """Return the popped value. Raise KeyError if empty."""
- it = iter(self)
- try:
- value = next(it)
- except StopIteration:
- raise KeyError from None
- self.discard(value)
- return value
-
- def clear(self):
- """This is slow (creates N new iterators!) but effective."""
- try:
- while True:
- self.pop()
- except KeyError:
- pass
-
- def __ior__(self, it):
- for value in it:
- self.add(value)
- return self
-
- def __iand__(self, it):
- for value in (self - it):
- self.discard(value)
- return self
-
- def __ixor__(self, it):
- if it is self:
- self.clear()
- else:
- if not isinstance(it, Set):
- it = self._from_iterable(it)
- for value in it:
- if value in self:
- self.discard(value)
- else:
- self.add(value)
- return self
-
- def __isub__(self, it):
- if it is self:
- self.clear()
- else:
- for value in it:
- self.discard(value)
- return self
-
-MutableSet.register(set)
-
-
-### MAPPINGS ###
-
-
-class Mapping(Collection):
-
- __slots__ = ()
-
- """A Mapping is a generic container for associating key/value
- pairs.
-
- This class provides concrete generic implementations of all
- methods except for __getitem__, __iter__, and __len__.
-
- """
-
- @abstractmethod
- def __getitem__(self, key):
- raise KeyError
-
- def get(self, key, default=None):
- 'D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.'
- try:
- return self[key]
- except KeyError:
- return default
-
- def __contains__(self, key):
- try:
- self[key]
- except KeyError:
- return False
- else:
- return True
-
- def keys(self):
- "D.keys() -> a set-like object providing a view on D's keys"
- return KeysView(self)
-
- def items(self):
- "D.items() -> a set-like object providing a view on D's items"
- return ItemsView(self)
-
- def values(self):
- "D.values() -> an object providing a view on D's values"
- return ValuesView(self)
-
- def __eq__(self, other):
- if not isinstance(other, Mapping):
- return NotImplemented
- return dict(self.items()) == dict(other.items())
-
- __reversed__ = None
-
-Mapping.register(mappingproxy)
-
-
-class MappingView(Sized):
-
- __slots__ = '_mapping',
-
- def __init__(self, mapping):
- self._mapping = mapping
-
- def __len__(self):
- return len(self._mapping)
-
- def __repr__(self):
- return '{0.__class__.__name__}({0._mapping!r})'.format(self)
-
-
-class KeysView(MappingView, Set):
-
- __slots__ = ()
-
- @classmethod
- def _from_iterable(self, it):
- return set(it)
-
- def __contains__(self, key):
- return key in self._mapping
-
- def __iter__(self):
- yield from self._mapping
-
-KeysView.register(dict_keys)
-
-
-class ItemsView(MappingView, Set):
-
- __slots__ = ()
-
- @classmethod
- def _from_iterable(self, it):
- return set(it)
-
- def __contains__(self, item):
- key, value = item
- try:
- v = self._mapping[key]
- except KeyError:
- return False
- else:
- return v is value or v == value
-
- def __iter__(self):
- for key in self._mapping:
- yield (key, self._mapping[key])
-
-ItemsView.register(dict_items)
-
-
-class ValuesView(MappingView, Collection):
-
- __slots__ = ()
-
- def __contains__(self, value):
- for key in self._mapping:
- v = self._mapping[key]
- if v is value or v == value:
- return True
- return False
-
- def __iter__(self):
- for key in self._mapping:
- yield self._mapping[key]
-
-ValuesView.register(dict_values)
-
-
-class MutableMapping(Mapping):
-
- __slots__ = ()
-
- """A MutableMapping is a generic container for associating
- key/value pairs.
-
- This class provides concrete generic implementations of all
- methods except for __getitem__, __setitem__, __delitem__,
- __iter__, and __len__.
-
- """
-
- @abstractmethod
- def __setitem__(self, key, value):
- raise KeyError
-
- @abstractmethod
- def __delitem__(self, key):
- raise KeyError
-
- __marker = object()
-
- def pop(self, key, default=__marker):
- '''D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
- If key is not found, d is returned if given, otherwise KeyError is raised.
- '''
- try:
- value = self[key]
- except KeyError:
- if default is self.__marker:
- raise
- return default
- else:
- del self[key]
- return value
-
- def popitem(self):
- '''D.popitem() -> (k, v), remove and return some (key, value) pair
- as a 2-tuple; but raise KeyError if D is empty.
- '''
- try:
- key = next(iter(self))
- except StopIteration:
- raise KeyError from None
- value = self[key]
- del self[key]
- return key, value
-
- def clear(self):
- 'D.clear() -> None. Remove all items from D.'
- try:
- while True:
- self.popitem()
- except KeyError:
- pass
-
- def update(*args, **kwds):
- ''' D.update([E, ]**F) -> None. Update D from mapping/iterable E and F.
- If E present and has a .keys() method, does: for k in E: D[k] = E[k]
- If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v
- In either case, this is followed by: for k, v in F.items(): D[k] = v
- '''
- if not args:
- raise TypeError("descriptor 'update' of 'MutableMapping' object "
- "needs an argument")
- self, *args = args
- if len(args) > 1:
- raise TypeError('update expected at most 1 arguments, got %d' %
- len(args))
- if args:
- other = args[0]
- if isinstance(other, Mapping):
- for key in other:
- self[key] = other[key]
- elif hasattr(other, "keys"):
- for key in other.keys():
- self[key] = other[key]
- else:
- for key, value in other:
- self[key] = value
- for key, value in kwds.items():
- self[key] = value
-
- def setdefault(self, key, default=None):
- 'D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D'
- try:
- return self[key]
- except KeyError:
- self[key] = default
- return default
-
-MutableMapping.register(dict)
-
-
-### SEQUENCES ###
-
-
-class Sequence(Reversible, Collection):
-
- """All the operations on a read-only sequence.
-
- Concrete subclasses must override __new__ or __init__,
- __getitem__, and __len__.
- """
-
- __slots__ = ()
-
- @abstractmethod
- def __getitem__(self, index):
- raise IndexError
-
- def __iter__(self):
- i = 0
- try:
- while True:
- v = self[i]
- yield v
- i += 1
- except IndexError:
- return
-
- def __contains__(self, value):
- for v in self:
- if v is value or v == value:
- return True
- return False
-
- def __reversed__(self):
- for i in reversed(range(len(self))):
- yield self[i]
-
- def index(self, value, start=0, stop=None):
- '''S.index(value, [start, [stop]]) -> integer -- return first index of value.
- Raises ValueError if the value is not present.
-
- Supporting start and stop arguments is optional, but
- recommended.
- '''
- if start is not None and start < 0:
- start = max(len(self) + start, 0)
- if stop is not None and stop < 0:
- stop += len(self)
-
- i = start
- while stop is None or i < stop:
- try:
- v = self[i]
- if v is value or v == value:
- return i
- except IndexError:
- break
- i += 1
- raise ValueError
-
- def count(self, value):
- 'S.count(value) -> integer -- return number of occurrences of value'
- return sum(1 for v in self if v is value or v == value)
-
-Sequence.register(tuple)
-Sequence.register(str)
-Sequence.register(range)
-Sequence.register(memoryview)
-
-
-class ByteString(Sequence):
-
- """This unifies bytes and bytearray.
-
- XXX Should add all their methods.
- """
-
- __slots__ = ()
-
-ByteString.register(bytes)
-ByteString.register(bytearray)
-
-
-class MutableSequence(Sequence):
-
- __slots__ = ()
-
- """All the operations on a read-write sequence.
-
- Concrete subclasses must provide __new__ or __init__,
- __getitem__, __setitem__, __delitem__, __len__, and insert().
-
- """
-
- @abstractmethod
- def __setitem__(self, index, value):
- raise IndexError
-
- @abstractmethod
- def __delitem__(self, index):
- raise IndexError
-
- @abstractmethod
- def insert(self, index, value):
- 'S.insert(index, value) -- insert value before index'
- raise IndexError
-
- def append(self, value):
- 'S.append(value) -- append value to the end of the sequence'
- self.insert(len(self), value)
-
- def clear(self):
- 'S.clear() -> None -- remove all items from S'
- try:
- while True:
- self.pop()
- except IndexError:
- pass
-
- def reverse(self):
- 'S.reverse() -- reverse *IN PLACE*'
- n = len(self)
- for i in range(n//2):
- self[i], self[n-i-1] = self[n-i-1], self[i]
-
- def extend(self, values):
- 'S.extend(iterable) -- extend sequence by appending elements from the iterable'
- for v in values:
- self.append(v)
-
- def pop(self, index=-1):
- '''S.pop([index]) -> item -- remove and return item at index (default last).
- Raise IndexError if list is empty or index is out of range.
- '''
- v = self[index]
- del self[index]
- return v
-
- def remove(self, value):
- '''S.remove(value) -- remove first occurrence of value.
- Raise ValueError if the value is not present.
- '''
- del self[self.index(value)]
-
- def __iadd__(self, values):
- self.extend(values)
- return self
-
-MutableSequence.register(list)
-MutableSequence.register(bytearray) # Multiply inheriting, see ByteString
diff --git a/EasyTrans/Lib/_dummy_thread.py b/EasyTrans/Lib/_dummy_thread.py
deleted file mode 100644
index 2e46a076..00000000
--- a/EasyTrans/Lib/_dummy_thread.py
+++ /dev/null
@@ -1,193 +0,0 @@
-"""Drop-in replacement for the thread module.
-
-Meant to be used as a brain-dead substitute so that threaded code does
-not need to be rewritten for when the thread module is not present.
-
-Suggested usage is::
-
- try:
- import _thread
- except ImportError:
- import _dummy_thread as _thread
-
-"""
-# Exports only things specified by thread documentation;
-# skipping obsolete synonyms allocate(), start_new(), exit_thread().
-__all__ = ['error', 'start_new_thread', 'exit', 'get_ident', 'allocate_lock',
- 'interrupt_main', 'LockType', 'RLock']
-
-# A dummy value
-TIMEOUT_MAX = 2**31
-
-# NOTE: this module can be imported early in the extension building process,
-# and so top level imports of other modules should be avoided. Instead, all
-# imports are done when needed on a function-by-function basis. Since threads
-# are disabled, the import lock should not be an issue anyway (??).
-
-error = RuntimeError
-
-def start_new_thread(function, args, kwargs={}):
- """Dummy implementation of _thread.start_new_thread().
-
- Compatibility is maintained by making sure that ``args`` is a
- tuple and ``kwargs`` is a dictionary. If an exception is raised
- and it is SystemExit (which can be done by _thread.exit()) it is
- caught and nothing is done; all other exceptions are printed out
- by using traceback.print_exc().
-
- If the executed function calls interrupt_main the KeyboardInterrupt will be
- raised when the function returns.
-
- """
- if type(args) != type(tuple()):
- raise TypeError("2nd arg must be a tuple")
- if type(kwargs) != type(dict()):
- raise TypeError("3rd arg must be a dict")
- global _main
- _main = False
- try:
- function(*args, **kwargs)
- except SystemExit:
- pass
- except:
- import traceback
- traceback.print_exc()
- _main = True
- global _interrupt
- if _interrupt:
- _interrupt = False
- raise KeyboardInterrupt
-
-def exit():
- """Dummy implementation of _thread.exit()."""
- raise SystemExit
-
-def get_ident():
- """Dummy implementation of _thread.get_ident().
-
- Since this module should only be used when _threadmodule is not
- available, it is safe to assume that the current process is the
- only thread. Thus a constant can be safely returned.
- """
- return 1
-
-def allocate_lock():
- """Dummy implementation of _thread.allocate_lock()."""
- return LockType()
-
-def stack_size(size=None):
- """Dummy implementation of _thread.stack_size()."""
- if size is not None:
- raise error("setting thread stack size not supported")
- return 0
-
-def _set_sentinel():
- """Dummy implementation of _thread._set_sentinel()."""
- return LockType()
-
-class LockType(object):
- """Class implementing dummy implementation of _thread.LockType.
-
- Compatibility is maintained by maintaining self.locked_status
- which is a boolean that stores the state of the lock. Pickling of
- the lock, though, should not be done since if the _thread module is
- then used with an unpickled ``lock()`` from here problems could
- occur from this class not having atomic methods.
-
- """
-
- def __init__(self):
- self.locked_status = False
-
- def acquire(self, waitflag=None, timeout=-1):
- """Dummy implementation of acquire().
-
- For blocking calls, self.locked_status is automatically set to
- True and returned appropriately based on value of
- ``waitflag``. If it is non-blocking, then the value is
- actually checked and not set if it is already acquired. This
- is all done so that threading.Condition's assert statements
- aren't triggered and throw a little fit.
-
- """
- if waitflag is None or waitflag:
- self.locked_status = True
- return True
- else:
- if not self.locked_status:
- self.locked_status = True
- return True
- else:
- if timeout > 0:
- import time
- time.sleep(timeout)
- return False
-
- __enter__ = acquire
-
- def __exit__(self, typ, val, tb):
- self.release()
-
- def release(self):
- """Release the dummy lock."""
- # XXX Perhaps shouldn't actually bother to test? Could lead
- # to problems for complex, threaded code.
- if not self.locked_status:
- raise error
- self.locked_status = False
- return True
-
- def locked(self):
- return self.locked_status
-
- def __repr__(self):
- return "<%s %s.%s object at %s>" % (
- "locked" if self.locked_status else "unlocked",
- self.__class__.__module__,
- self.__class__.__qualname__,
- hex(id(self))
- )
-
-
-class RLock(LockType):
- """Dummy implementation of threading._RLock.
-
- Re-entrant lock can be aquired multiple times and needs to be released
- just as many times. This dummy implemention does not check wheter the
- current thread actually owns the lock, but does accounting on the call
- counts.
- """
- def __init__(self):
- super().__init__()
- self._levels = 0
-
- def acquire(self, waitflag=None, timeout=-1):
- """Aquire the lock, can be called multiple times in succession.
- """
- locked = super().acquire(waitflag, timeout)
- if locked:
- self._levels += 1
- return locked
-
- def release(self):
- """Release needs to be called once for every call to acquire().
- """
- if self._levels == 0:
- raise error
- if self._levels == 1:
- super().release()
- self._levels -= 1
-
-# Used to signal that interrupt_main was called in a "thread"
-_interrupt = False
-# True when not executing in a "thread"
-_main = True
-
-def interrupt_main():
- """Set _interrupt flag to True to have start_new_thread raise
- KeyboardInterrupt upon exiting."""
- if _main:
- raise KeyboardInterrupt
- else:
- global _interrupt
- _interrupt = True
diff --git a/EasyTrans/Lib/_weakrefset.py b/EasyTrans/Lib/_weakrefset.py
deleted file mode 100644
index 304c66f5..00000000
--- a/EasyTrans/Lib/_weakrefset.py
+++ /dev/null
@@ -1,196 +0,0 @@
-# Access WeakSet through the weakref module.
-# This code is separated-out because it is needed
-# by abc.py to load everything else at startup.
-
-from _weakref import ref
-
-__all__ = ['WeakSet']
-
-
-class _IterationGuard:
- # This context manager registers itself in the current iterators of the
- # weak container, such as to delay all removals until the context manager
- # exits.
- # This technique should be relatively thread-safe (since sets are).
-
- def __init__(self, weakcontainer):
- # Don't create cycles
- self.weakcontainer = ref(weakcontainer)
-
- def __enter__(self):
- w = self.weakcontainer()
- if w is not None:
- w._iterating.add(self)
- return self
-
- def __exit__(self, e, t, b):
- w = self.weakcontainer()
- if w is not None:
- s = w._iterating
- s.remove(self)
- if not s:
- w._commit_removals()
-
-
-class WeakSet:
- def __init__(self, data=None):
- self.data = set()
- def _remove(item, selfref=ref(self)):
- self = selfref()
- if self is not None:
- if self._iterating:
- self._pending_removals.append(item)
- else:
- self.data.discard(item)
- self._remove = _remove
- # A list of keys to be removed
- self._pending_removals = []
- self._iterating = set()
- if data is not None:
- self.update(data)
-
- def _commit_removals(self):
- l = self._pending_removals
- discard = self.data.discard
- while l:
- discard(l.pop())
-
- def __iter__(self):
- with _IterationGuard(self):
- for itemref in self.data:
- item = itemref()
- if item is not None:
- # Caveat: the iterator will keep a strong reference to
- # `item` until it is resumed or closed.
- yield item
-
- def __len__(self):
- return len(self.data) - len(self._pending_removals)
-
- def __contains__(self, item):
- try:
- wr = ref(item)
- except TypeError:
- return False
- return wr in self.data
-
- def __reduce__(self):
- return (self.__class__, (list(self),),
- getattr(self, '__dict__', None))
-
- def add(self, item):
- if self._pending_removals:
- self._commit_removals()
- self.data.add(ref(item, self._remove))
-
- def clear(self):
- if self._pending_removals:
- self._commit_removals()
- self.data.clear()
-
- def copy(self):
- return self.__class__(self)
-
- def pop(self):
- if self._pending_removals:
- self._commit_removals()
- while True:
- try:
- itemref = self.data.pop()
- except KeyError:
- raise KeyError('pop from empty WeakSet') from None
- item = itemref()
- if item is not None:
- return item
-
- def remove(self, item):
- if self._pending_removals:
- self._commit_removals()
- self.data.remove(ref(item))
-
- def discard(self, item):
- if self._pending_removals:
- self._commit_removals()
- self.data.discard(ref(item))
-
- def update(self, other):
- if self._pending_removals:
- self._commit_removals()
- for element in other:
- self.add(element)
-
- def __ior__(self, other):
- self.update(other)
- return self
-
- def difference(self, other):
- newset = self.copy()
- newset.difference_update(other)
- return newset
- __sub__ = difference
-
- def difference_update(self, other):
- self.__isub__(other)
- def __isub__(self, other):
- if self._pending_removals:
- self._commit_removals()
- if self is other:
- self.data.clear()
- else:
- self.data.difference_update(ref(item) for item in other)
- return self
-
- def intersection(self, other):
- return self.__class__(item for item in other if item in self)
- __and__ = intersection
-
- def intersection_update(self, other):
- self.__iand__(other)
- def __iand__(self, other):
- if self._pending_removals:
- self._commit_removals()
- self.data.intersection_update(ref(item) for item in other)
- return self
-
- def issubset(self, other):
- return self.data.issubset(ref(item) for item in other)
- __le__ = issubset
-
- def __lt__(self, other):
- return self.data < set(map(ref, other))
-
- def issuperset(self, other):
- return self.data.issuperset(ref(item) for item in other)
- __ge__ = issuperset
-
- def __gt__(self, other):
- return self.data > set(map(ref, other))
-
- def __eq__(self, other):
- if not isinstance(other, self.__class__):
- return NotImplemented
- return self.data == set(map(ref, other))
-
- def symmetric_difference(self, other):
- newset = self.copy()
- newset.symmetric_difference_update(other)
- return newset
- __xor__ = symmetric_difference
-
- def symmetric_difference_update(self, other):
- self.__ixor__(other)
- def __ixor__(self, other):
- if self._pending_removals:
- self._commit_removals()
- if self is other:
- self.data.clear()
- else:
- self.data.symmetric_difference_update(ref(item, self._remove) for item in other)
- return self
-
- def union(self, other):
- return self.__class__(e for s in (self, other) for e in s)
- __or__ = union
-
- def isdisjoint(self, other):
- return len(self.intersection(other)) == 0
diff --git a/EasyTrans/Lib/abc.py b/EasyTrans/Lib/abc.py
deleted file mode 100644
index 70941412..00000000
--- a/EasyTrans/Lib/abc.py
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright 2007 Google, Inc. All Rights Reserved.
-# Licensed to PSF under a Contributor Agreement.
-
-"""Abstract Base Classes (ABCs) according to PEP 3119."""
-
-
-def abstractmethod(funcobj):
- """A decorator indicating abstract methods.
-
- Requires that the metaclass is ABCMeta or derived from it. A
- class that has a metaclass derived from ABCMeta cannot be
- instantiated unless all of its abstract methods are overridden.
- The abstract methods can be called using any of the normal
- 'super' call mechanisms.
-
- Usage:
-
- class C(metaclass=ABCMeta):
- @abstractmethod
- def my_abstract_method(self, ...):
- ...
- """
- funcobj.__isabstractmethod__ = True
- return funcobj
-
-
-class abstractclassmethod(classmethod):
- """A decorator indicating abstract classmethods.
-
- Similar to abstractmethod.
-
- Usage:
-
- class C(metaclass=ABCMeta):
- @abstractclassmethod
- def my_abstract_classmethod(cls, ...):
- ...
-
- 'abstractclassmethod' is deprecated. Use 'classmethod' with
- 'abstractmethod' instead.
- """
-
- __isabstractmethod__ = True
-
- def __init__(self, callable):
- callable.__isabstractmethod__ = True
- super().__init__(callable)
-
-
-class abstractstaticmethod(staticmethod):
- """A decorator indicating abstract staticmethods.
-
- Similar to abstractmethod.
-
- Usage:
-
- class C(metaclass=ABCMeta):
- @abstractstaticmethod
- def my_abstract_staticmethod(...):
- ...
-
- 'abstractstaticmethod' is deprecated. Use 'staticmethod' with
- 'abstractmethod' instead.
- """
-
- __isabstractmethod__ = True
-
- def __init__(self, callable):
- callable.__isabstractmethod__ = True
- super().__init__(callable)
-
-
-class abstractproperty(property):
- """A decorator indicating abstract properties.
-
- Requires that the metaclass is ABCMeta or derived from it. A
- class that has a metaclass derived from ABCMeta cannot be
- instantiated unless all of its abstract properties are overridden.
- The abstract properties can be called using any of the normal
- 'super' call mechanisms.
-
- Usage:
-
- class C(metaclass=ABCMeta):
- @abstractproperty
- def my_abstract_property(self):
- ...
-
- This defines a read-only property; you can also define a read-write
- abstract property using the 'long' form of property declaration:
-
- class C(metaclass=ABCMeta):
- def getx(self): ...
- def setx(self, value): ...
- x = abstractproperty(getx, setx)
-
- 'abstractproperty' is deprecated. Use 'property' with 'abstractmethod'
- instead.
- """
-
- __isabstractmethod__ = True
-
-
-try:
- from _abc import (get_cache_token, _abc_init, _abc_register,
- _abc_instancecheck, _abc_subclasscheck, _get_dump,
- _reset_registry, _reset_caches)
-except ImportError:
- from _py_abc import ABCMeta, get_cache_token
- ABCMeta.__module__ = 'abc'
-else:
- class ABCMeta(type):
- """Metaclass for defining Abstract Base Classes (ABCs).
-
- Use this metaclass to create an ABC. An ABC can be subclassed
- directly, and then acts as a mix-in class. You can also register
- unrelated concrete classes (even built-in classes) and unrelated
- ABCs as 'virtual subclasses' -- these and their descendants will
- be considered subclasses of the registering ABC by the built-in
- issubclass() function, but the registering ABC won't show up in
- their MRO (Method Resolution Order) nor will method
- implementations defined by the registering ABC be callable (not
- even via super()).
- """
- def __new__(mcls, name, bases, namespace, **kwargs):
- cls = super().__new__(mcls, name, bases, namespace, **kwargs)
- _abc_init(cls)
- return cls
-
- def register(cls, subclass):
- """Register a virtual subclass of an ABC.
-
- Returns the subclass, to allow usage as a class decorator.
- """
- return _abc_register(cls, subclass)
-
- def __instancecheck__(cls, instance):
- """Override for isinstance(instance, cls)."""
- return _abc_instancecheck(cls, instance)
-
- def __subclasscheck__(cls, subclass):
- """Override for issubclass(subclass, cls)."""
- return _abc_subclasscheck(cls, subclass)
-
- def _dump_registry(cls, file=None):
- """Debug helper to print the ABC registry."""
- print(f"Class: {cls.__module__}.{cls.__qualname__}", file=file)
- print(f"Inv. counter: {get_cache_token()}", file=file)
- (_abc_registry, _abc_cache, _abc_negative_cache,
- _abc_negative_cache_version) = _get_dump(cls)
- print(f"_abc_registry: {_abc_registry!r}", file=file)
- print(f"_abc_cache: {_abc_cache!r}", file=file)
- print(f"_abc_negative_cache: {_abc_negative_cache!r}", file=file)
- print(f"_abc_negative_cache_version: {_abc_negative_cache_version!r}",
- file=file)
-
- def _abc_registry_clear(cls):
- """Clear the registry (for debugging or testing)."""
- _reset_registry(cls)
-
- def _abc_caches_clear(cls):
- """Clear the caches (for debugging or testing)."""
- _reset_caches(cls)
-
-
-class ABC(metaclass=ABCMeta):
- """Helper class that provides a standard way to create an ABC using
- inheritance.
- """
- __slots__ = ()
diff --git a/EasyTrans/Lib/base64.py b/EasyTrans/Lib/base64.py
deleted file mode 100644
index 2be9c395..00000000
--- a/EasyTrans/Lib/base64.py
+++ /dev/null
@@ -1,595 +0,0 @@
-#! /usr/bin/env python3
-
-"""Base16, Base32, Base64 (RFC 3548), Base85 and Ascii85 data encodings"""
-
-# Modified 04-Oct-1995 by Jack Jansen to use binascii module
-# Modified 30-Dec-2003 by Barry Warsaw to add full RFC 3548 support
-# Modified 22-May-2007 by Guido van Rossum to use bytes everywhere
-
-import re
-import struct
-import binascii
-
-
-__all__ = [
- # Legacy interface exports traditional RFC 2045 Base64 encodings
- 'encode', 'decode', 'encodebytes', 'decodebytes',
- # Generalized interface for other encodings
- 'b64encode', 'b64decode', 'b32encode', 'b32decode',
- 'b16encode', 'b16decode',
- # Base85 and Ascii85 encodings
- 'b85encode', 'b85decode', 'a85encode', 'a85decode',
- # Standard Base64 encoding
- 'standard_b64encode', 'standard_b64decode',
- # Some common Base64 alternatives. As referenced by RFC 3458, see thread
- # starting at:
- #
- # http://zgp.org/pipermail/p2p-hackers/2001-September/000316.html
- 'urlsafe_b64encode', 'urlsafe_b64decode',
- ]
-
-
-bytes_types = (bytes, bytearray) # Types acceptable as binary data
-
-def _bytes_from_decode_data(s):
- if isinstance(s, str):
- try:
- return s.encode('ascii')
- except UnicodeEncodeError:
- raise ValueError('string argument should contain only ASCII characters')
- if isinstance(s, bytes_types):
- return s
- try:
- return memoryview(s).tobytes()
- except TypeError:
- raise TypeError("argument should be a bytes-like object or ASCII "
- "string, not %r" % s.__class__.__name__) from None
-
-
-# Base64 encoding/decoding uses binascii
-
-def b64encode(s, altchars=None):
- """Encode the bytes-like object s using Base64 and return a bytes object.
-
- Optional altchars should be a byte string of length 2 which specifies an
- alternative alphabet for the '+' and '/' characters. This allows an
- application to e.g. generate url or filesystem safe Base64 strings.
- """
- encoded = binascii.b2a_base64(s, newline=False)
- if altchars is not None:
- assert len(altchars) == 2, repr(altchars)
- return encoded.translate(bytes.maketrans(b'+/', altchars))
- return encoded
-
-
-def b64decode(s, altchars=None, validate=False):
- """Decode the Base64 encoded bytes-like object or ASCII string s.
-
- Optional altchars must be a bytes-like object or ASCII string of length 2
- which specifies the alternative alphabet used instead of the '+' and '/'
- characters.
-
- The result is returned as a bytes object. A binascii.Error is raised if
- s is incorrectly padded.
-
- If validate is False (the default), characters that are neither in the
- normal base-64 alphabet nor the alternative alphabet are discarded prior
- to the padding check. If validate is True, these non-alphabet characters
- in the input result in a binascii.Error.
- """
- s = _bytes_from_decode_data(s)
- if altchars is not None:
- altchars = _bytes_from_decode_data(altchars)
- assert len(altchars) == 2, repr(altchars)
- s = s.translate(bytes.maketrans(altchars, b'+/'))
- if validate and not re.match(b'^[A-Za-z0-9+/]*={0,2}$', s):
- raise binascii.Error('Non-base64 digit found')
- return binascii.a2b_base64(s)
-
-
-def standard_b64encode(s):
- """Encode bytes-like object s using the standard Base64 alphabet.
-
- The result is returned as a bytes object.
- """
- return b64encode(s)
-
-def standard_b64decode(s):
- """Decode bytes encoded with the standard Base64 alphabet.
-
- Argument s is a bytes-like object or ASCII string to decode. The result
- is returned as a bytes object. A binascii.Error is raised if the input
- is incorrectly padded. Characters that are not in the standard alphabet
- are discarded prior to the padding check.
- """
- return b64decode(s)
-
-
-_urlsafe_encode_translation = bytes.maketrans(b'+/', b'-_')
-_urlsafe_decode_translation = bytes.maketrans(b'-_', b'+/')
-
-def urlsafe_b64encode(s):
- """Encode bytes using the URL- and filesystem-safe Base64 alphabet.
-
- Argument s is a bytes-like object to encode. The result is returned as a
- bytes object. The alphabet uses '-' instead of '+' and '_' instead of
- '/'.
- """
- return b64encode(s).translate(_urlsafe_encode_translation)
-
-def urlsafe_b64decode(s):
- """Decode bytes using the URL- and filesystem-safe Base64 alphabet.
-
- Argument s is a bytes-like object or ASCII string to decode. The result
- is returned as a bytes object. A binascii.Error is raised if the input
- is incorrectly padded. Characters that are not in the URL-safe base-64
- alphabet, and are not a plus '+' or slash '/', are discarded prior to the
- padding check.
-
- The alphabet uses '-' instead of '+' and '_' instead of '/'.
- """
- s = _bytes_from_decode_data(s)
- s = s.translate(_urlsafe_decode_translation)
- return b64decode(s)
-
-
-
-# Base32 encoding/decoding must be done in Python
-_b32alphabet = b'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'
-_b32tab2 = None
-_b32rev = None
-
-def b32encode(s):
- """Encode the bytes-like object s using Base32 and return a bytes object.
- """
- global _b32tab2
- # Delay the initialization of the table to not waste memory
- # if the function is never called
- if _b32tab2 is None:
- b32tab = [bytes((i,)) for i in _b32alphabet]
- _b32tab2 = [a + b for a in b32tab for b in b32tab]
- b32tab = None
-
- if not isinstance(s, bytes_types):
- s = memoryview(s).tobytes()
- leftover = len(s) % 5
- # Pad the last quantum with zero bits if necessary
- if leftover:
- s = s + b'\0' * (5 - leftover) # Don't use += !
- encoded = bytearray()
- from_bytes = int.from_bytes
- b32tab2 = _b32tab2
- for i in range(0, len(s), 5):
- c = from_bytes(s[i: i + 5], 'big')
- encoded += (b32tab2[c >> 30] + # bits 1 - 10
- b32tab2[(c >> 20) & 0x3ff] + # bits 11 - 20
- b32tab2[(c >> 10) & 0x3ff] + # bits 21 - 30
- b32tab2[c & 0x3ff] # bits 31 - 40
- )
- # Adjust for any leftover partial quanta
- if leftover == 1:
- encoded[-6:] = b'======'
- elif leftover == 2:
- encoded[-4:] = b'===='
- elif leftover == 3:
- encoded[-3:] = b'==='
- elif leftover == 4:
- encoded[-1:] = b'='
- return bytes(encoded)
-
-def b32decode(s, casefold=False, map01=None):
- """Decode the Base32 encoded bytes-like object or ASCII string s.
-
- Optional casefold is a flag specifying whether a lowercase alphabet is
- acceptable as input. For security purposes, the default is False.
-
- RFC 3548 allows for optional mapping of the digit 0 (zero) to the
- letter O (oh), and for optional mapping of the digit 1 (one) to
- either the letter I (eye) or letter L (el). The optional argument
- map01 when not None, specifies which letter the digit 1 should be
- mapped to (when map01 is not None, the digit 0 is always mapped to
- the letter O). For security purposes the default is None, so that
- 0 and 1 are not allowed in the input.
-
- The result is returned as a bytes object. A binascii.Error is raised if
- the input is incorrectly padded or if there are non-alphabet
- characters present in the input.
- """
- global _b32rev
- # Delay the initialization of the table to not waste memory
- # if the function is never called
- if _b32rev is None:
- _b32rev = {v: k for k, v in enumerate(_b32alphabet)}
- s = _bytes_from_decode_data(s)
- if len(s) % 8:
- raise binascii.Error('Incorrect padding')
- # Handle section 2.4 zero and one mapping. The flag map01 will be either
- # False, or the character to map the digit 1 (one) to. It should be
- # either L (el) or I (eye).
- if map01 is not None:
- map01 = _bytes_from_decode_data(map01)
- assert len(map01) == 1, repr(map01)
- s = s.translate(bytes.maketrans(b'01', b'O' + map01))
- if casefold:
- s = s.upper()
- # Strip off pad characters from the right. We need to count the pad
- # characters because this will tell us how many null bytes to remove from
- # the end of the decoded string.
- l = len(s)
- s = s.rstrip(b'=')
- padchars = l - len(s)
- # Now decode the full quanta
- decoded = bytearray()
- b32rev = _b32rev
- for i in range(0, len(s), 8):
- quanta = s[i: i + 8]
- acc = 0
- try:
- for c in quanta:
- acc = (acc << 5) + b32rev[c]
- except KeyError:
- raise binascii.Error('Non-base32 digit found') from None
- decoded += acc.to_bytes(5, 'big')
- # Process the last, partial quanta
- if l % 8 or padchars not in {0, 1, 3, 4, 6}:
- raise binascii.Error('Incorrect padding')
- if padchars and decoded:
- acc <<= 5 * padchars
- last = acc.to_bytes(5, 'big')
- leftover = (43 - 5 * padchars) // 8 # 1: 4, 3: 3, 4: 2, 6: 1
- decoded[-5:] = last[:leftover]
- return bytes(decoded)
-
-
-# RFC 3548, Base 16 Alphabet specifies uppercase, but hexlify() returns
-# lowercase. The RFC also recommends against accepting input case
-# insensitively.
-def b16encode(s):
- """Encode the bytes-like object s using Base16 and return a bytes object.
- """
- return binascii.hexlify(s).upper()
-
-
-def b16decode(s, casefold=False):
- """Decode the Base16 encoded bytes-like object or ASCII string s.
-
- Optional casefold is a flag specifying whether a lowercase alphabet is
- acceptable as input. For security purposes, the default is False.
-
- The result is returned as a bytes object. A binascii.Error is raised if
- s is incorrectly padded or if there are non-alphabet characters present
- in the input.
- """
- s = _bytes_from_decode_data(s)
- if casefold:
- s = s.upper()
- if re.search(b'[^0-9A-F]', s):
- raise binascii.Error('Non-base16 digit found')
- return binascii.unhexlify(s)
-
-#
-# Ascii85 encoding/decoding
-#
-
-_a85chars = None
-_a85chars2 = None
-_A85START = b"<~"
-_A85END = b"~>"
-
-def _85encode(b, chars, chars2, pad=False, foldnuls=False, foldspaces=False):
- # Helper function for a85encode and b85encode
- if not isinstance(b, bytes_types):
- b = memoryview(b).tobytes()
-
- padding = (-len(b)) % 4
- if padding:
- b = b + b'\0' * padding
- words = struct.Struct('!%dI' % (len(b) // 4)).unpack(b)
-
- chunks = [b'z' if foldnuls and not word else
- b'y' if foldspaces and word == 0x20202020 else
- (chars2[word // 614125] +
- chars2[word // 85 % 7225] +
- chars[word % 85])
- for word in words]
-
- if padding and not pad:
- if chunks[-1] == b'z':
- chunks[-1] = chars[0] * 5
- chunks[-1] = chunks[-1][:-padding]
-
- return b''.join(chunks)
-
-def a85encode(b, *, foldspaces=False, wrapcol=0, pad=False, adobe=False):
- """Encode bytes-like object b using Ascii85 and return a bytes object.
-
- foldspaces is an optional flag that uses the special short sequence 'y'
- instead of 4 consecutive spaces (ASCII 0x20) as supported by 'btoa'. This
- feature is not supported by the "standard" Adobe encoding.
-
- wrapcol controls whether the output should have newline (b'\\n') characters
- added to it. If this is non-zero, each output line will be at most this
- many characters long.
-
- pad controls whether the input is padded to a multiple of 4 before
- encoding. Note that the btoa implementation always pads.
-
- adobe controls whether the encoded byte sequence is framed with <~ and ~>,
- which is used by the Adobe implementation.
- """
- global _a85chars, _a85chars2
- # Delay the initialization of tables to not waste memory
- # if the function is never called
- if _a85chars is None:
- _a85chars = [bytes((i,)) for i in range(33, 118)]
- _a85chars2 = [(a + b) for a in _a85chars for b in _a85chars]
-
- result = _85encode(b, _a85chars, _a85chars2, pad, True, foldspaces)
-
- if adobe:
- result = _A85START + result
- if wrapcol:
- wrapcol = max(2 if adobe else 1, wrapcol)
- chunks = [result[i: i + wrapcol]
- for i in range(0, len(result), wrapcol)]
- if adobe:
- if len(chunks[-1]) + 2 > wrapcol:
- chunks.append(b'')
- result = b'\n'.join(chunks)
- if adobe:
- result += _A85END
-
- return result
-
-def a85decode(b, *, foldspaces=False, adobe=False, ignorechars=b' \t\n\r\v'):
- """Decode the Ascii85 encoded bytes-like object or ASCII string b.
-
- foldspaces is a flag that specifies whether the 'y' short sequence should be
- accepted as shorthand for 4 consecutive spaces (ASCII 0x20). This feature is
- not supported by the "standard" Adobe encoding.
-
- adobe controls whether the input sequence is in Adobe Ascii85 format (i.e.
- is framed with <~ and ~>).
-
- ignorechars should be a byte string containing characters to ignore from the
- input. This should only contain whitespace characters, and by default
- contains all whitespace characters in ASCII.
-
- The result is returned as a bytes object.
- """
- b = _bytes_from_decode_data(b)
- if adobe:
- if not b.endswith(_A85END):
- raise ValueError(
- "Ascii85 encoded byte sequences must end "
- "with {!r}".format(_A85END)
- )
- if b.startswith(_A85START):
- b = b[2:-2] # Strip off start/end markers
- else:
- b = b[:-2]
- #
- # We have to go through this stepwise, so as to ignore spaces and handle
- # special short sequences
- #
- packI = struct.Struct('!I').pack
- decoded = []
- decoded_append = decoded.append
- curr = []
- curr_append = curr.append
- curr_clear = curr.clear
- for x in b + b'u' * 4:
- if b'!'[0] <= x <= b'u'[0]:
- curr_append(x)
- if len(curr) == 5:
- acc = 0
- for x in curr:
- acc = 85 * acc + (x - 33)
- try:
- decoded_append(packI(acc))
- except struct.error:
- raise ValueError('Ascii85 overflow') from None
- curr_clear()
- elif x == b'z'[0]:
- if curr:
- raise ValueError('z inside Ascii85 5-tuple')
- decoded_append(b'\0\0\0\0')
- elif foldspaces and x == b'y'[0]:
- if curr:
- raise ValueError('y inside Ascii85 5-tuple')
- decoded_append(b'\x20\x20\x20\x20')
- elif x in ignorechars:
- # Skip whitespace
- continue
- else:
- raise ValueError('Non-Ascii85 digit found: %c' % x)
-
- result = b''.join(decoded)
- padding = 4 - len(curr)
- if padding:
- # Throw away the extra padding
- result = result[:-padding]
- return result
-
-# The following code is originally taken (with permission) from Mercurial
-
-_b85alphabet = (b"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- b"abcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~")
-_b85chars = None
-_b85chars2 = None
-_b85dec = None
-
-def b85encode(b, pad=False):
- """Encode bytes-like object b in base85 format and return a bytes object.
-
- If pad is true, the input is padded with b'\\0' so its length is a multiple of
- 4 bytes before encoding.
- """
- global _b85chars, _b85chars2
- # Delay the initialization of tables to not waste memory
- # if the function is never called
- if _b85chars is None:
- _b85chars = [bytes((i,)) for i in _b85alphabet]
- _b85chars2 = [(a + b) for a in _b85chars for b in _b85chars]
- return _85encode(b, _b85chars, _b85chars2, pad)
-
-def b85decode(b):
- """Decode the base85-encoded bytes-like object or ASCII string b
-
- The result is returned as a bytes object.
- """
- global _b85dec
- # Delay the initialization of tables to not waste memory
- # if the function is never called
- if _b85dec is None:
- _b85dec = [None] * 256
- for i, c in enumerate(_b85alphabet):
- _b85dec[c] = i
-
- b = _bytes_from_decode_data(b)
- padding = (-len(b)) % 5
- b = b + b'~' * padding
- out = []
- packI = struct.Struct('!I').pack
- for i in range(0, len(b), 5):
- chunk = b[i:i + 5]
- acc = 0
- try:
- for c in chunk:
- acc = acc * 85 + _b85dec[c]
- except TypeError:
- for j, c in enumerate(chunk):
- if _b85dec[c] is None:
- raise ValueError('bad base85 character at position %d'
- % (i + j)) from None
- raise
- try:
- out.append(packI(acc))
- except struct.error:
- raise ValueError('base85 overflow in hunk starting at byte %d'
- % i) from None
-
- result = b''.join(out)
- if padding:
- result = result[:-padding]
- return result
-
-# Legacy interface. This code could be cleaned up since I don't believe
-# binascii has any line length limitations. It just doesn't seem worth it
-# though. The files should be opened in binary mode.
-
-MAXLINESIZE = 76 # Excluding the CRLF
-MAXBINSIZE = (MAXLINESIZE//4)*3
-
-def encode(input, output):
- """Encode a file; input and output are binary files."""
- while True:
- s = input.read(MAXBINSIZE)
- if not s:
- break
- while len(s) < MAXBINSIZE:
- ns = input.read(MAXBINSIZE-len(s))
- if not ns:
- break
- s += ns
- line = binascii.b2a_base64(s)
- output.write(line)
-
-
-def decode(input, output):
- """Decode a file; input and output are binary files."""
- while True:
- line = input.readline()
- if not line:
- break
- s = binascii.a2b_base64(line)
- output.write(s)
-
-def _input_type_check(s):
- try:
- m = memoryview(s)
- except TypeError as err:
- msg = "expected bytes-like object, not %s" % s.__class__.__name__
- raise TypeError(msg) from err
- if m.format not in ('c', 'b', 'B'):
- msg = ("expected single byte elements, not %r from %s" %
- (m.format, s.__class__.__name__))
- raise TypeError(msg)
- if m.ndim != 1:
- msg = ("expected 1-D data, not %d-D data from %s" %
- (m.ndim, s.__class__.__name__))
- raise TypeError(msg)
-
-
-def encodebytes(s):
- """Encode a bytestring into a bytes object containing multiple lines
- of base-64 data."""
- _input_type_check(s)
- pieces = []
- for i in range(0, len(s), MAXBINSIZE):
- chunk = s[i : i + MAXBINSIZE]
- pieces.append(binascii.b2a_base64(chunk))
- return b"".join(pieces)
-
-def encodestring(s):
- """Legacy alias of encodebytes()."""
- import warnings
- warnings.warn("encodestring() is a deprecated alias since 3.1, "
- "use encodebytes()",
- DeprecationWarning, 2)
- return encodebytes(s)
-
-
-def decodebytes(s):
- """Decode a bytestring of base-64 data into a bytes object."""
- _input_type_check(s)
- return binascii.a2b_base64(s)
-
-def decodestring(s):
- """Legacy alias of decodebytes()."""
- import warnings
- warnings.warn("decodestring() is a deprecated alias since Python 3.1, "
- "use decodebytes()",
- DeprecationWarning, 2)
- return decodebytes(s)
-
-
-# Usable as a script...
-def main():
- """Small main program"""
- import sys, getopt
- try:
- opts, args = getopt.getopt(sys.argv[1:], 'deut')
- except getopt.error as msg:
- sys.stdout = sys.stderr
- print(msg)
- print("""usage: %s [-d|-e|-u|-t] [file|-]
- -d, -u: decode
- -e: encode (default)
- -t: encode and decode string 'Aladdin:open sesame'"""%sys.argv[0])
- sys.exit(2)
- func = encode
- for o, a in opts:
- if o == '-e': func = encode
- if o == '-d': func = decode
- if o == '-u': func = decode
- if o == '-t': test(); return
- if args and args[0] != '-':
- with open(args[0], 'rb') as f:
- func(f, sys.stdout.buffer)
- else:
- func(sys.stdin.buffer, sys.stdout.buffer)
-
-
-def test():
- s0 = b"Aladdin:open sesame"
- print(repr(s0))
- s1 = encodebytes(s0)
- print(repr(s1))
- s2 = decodebytes(s1)
- print(repr(s2))
- assert s0 == s2
-
-
-if __name__ == '__main__':
- main()
diff --git a/EasyTrans/Lib/bisect.py b/EasyTrans/Lib/bisect.py
deleted file mode 100644
index 7732c639..00000000
--- a/EasyTrans/Lib/bisect.py
+++ /dev/null
@@ -1,92 +0,0 @@
-"""Bisection algorithms."""
-
-def insort_right(a, x, lo=0, hi=None):
- """Insert item x in list a, and keep it sorted assuming a is sorted.
-
- If x is already in a, insert it to the right of the rightmost x.
-
- Optional args lo (default 0) and hi (default len(a)) bound the
- slice of a to be searched.
- """
-
- if lo < 0:
- raise ValueError('lo must be non-negative')
- if hi is None:
- hi = len(a)
- while lo < hi:
- mid = (lo+hi)//2
- if x < a[mid]: hi = mid
- else: lo = mid+1
- a.insert(lo, x)
-
-def bisect_right(a, x, lo=0, hi=None):
- """Return the index where to insert item x in list a, assuming a is sorted.
-
- The return value i is such that all e in a[:i] have e <= x, and all e in
- a[i:] have e > x. So if x already appears in the list, a.insert(x) will
- insert just after the rightmost x already there.
-
- Optional args lo (default 0) and hi (default len(a)) bound the
- slice of a to be searched.
- """
-
- if lo < 0:
- raise ValueError('lo must be non-negative')
- if hi is None:
- hi = len(a)
- while lo < hi:
- mid = (lo+hi)//2
- if x < a[mid]: hi = mid
- else: lo = mid+1
- return lo
-
-def insort_left(a, x, lo=0, hi=None):
- """Insert item x in list a, and keep it sorted assuming a is sorted.
-
- If x is already in a, insert it to the left of the leftmost x.
-
- Optional args lo (default 0) and hi (default len(a)) bound the
- slice of a to be searched.
- """
-
- if lo < 0:
- raise ValueError('lo must be non-negative')
- if hi is None:
- hi = len(a)
- while lo < hi:
- mid = (lo+hi)//2
- if a[mid] < x: lo = mid+1
- else: hi = mid
- a.insert(lo, x)
-
-
-def bisect_left(a, x, lo=0, hi=None):
- """Return the index where to insert item x in list a, assuming a is sorted.
-
- The return value i is such that all e in a[:i] have e < x, and all e in
- a[i:] have e >= x. So if x already appears in the list, a.insert(x) will
- insert just before the leftmost x already there.
-
- Optional args lo (default 0) and hi (default len(a)) bound the
- slice of a to be searched.
- """
-
- if lo < 0:
- raise ValueError('lo must be non-negative')
- if hi is None:
- hi = len(a)
- while lo < hi:
- mid = (lo+hi)//2
- if a[mid] < x: lo = mid+1
- else: hi = mid
- return lo
-
-# Overwrite above definitions with a fast C implementation
-try:
- from _bisect import *
-except ImportError:
- pass
-
-# Create aliases
-bisect = bisect_right
-insort = insort_right
diff --git a/EasyTrans/Lib/codecs.py b/EasyTrans/Lib/codecs.py
deleted file mode 100644
index cfca5d38..00000000
--- a/EasyTrans/Lib/codecs.py
+++ /dev/null
@@ -1,1120 +0,0 @@
-""" codecs -- Python Codec Registry, API and helpers.
-
-
-Written by Marc-Andre Lemburg (mal@lemburg.com).
-
-(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
-
-"""
-
-import builtins
-import sys
-
-### Registry and builtin stateless codec functions
-
-try:
- from _codecs import *
-except ImportError as why:
- raise SystemError('Failed to load the builtin codecs: %s' % why)
-
-__all__ = ["register", "lookup", "open", "EncodedFile", "BOM", "BOM_BE",
- "BOM_LE", "BOM32_BE", "BOM32_LE", "BOM64_BE", "BOM64_LE",
- "BOM_UTF8", "BOM_UTF16", "BOM_UTF16_LE", "BOM_UTF16_BE",
- "BOM_UTF32", "BOM_UTF32_LE", "BOM_UTF32_BE",
- "CodecInfo", "Codec", "IncrementalEncoder", "IncrementalDecoder",
- "StreamReader", "StreamWriter",
- "StreamReaderWriter", "StreamRecoder",
- "getencoder", "getdecoder", "getincrementalencoder",
- "getincrementaldecoder", "getreader", "getwriter",
- "encode", "decode", "iterencode", "iterdecode",
- "strict_errors", "ignore_errors", "replace_errors",
- "xmlcharrefreplace_errors",
- "backslashreplace_errors", "namereplace_errors",
- "register_error", "lookup_error"]
-
-### Constants
-
-#
-# Byte Order Mark (BOM = ZERO WIDTH NO-BREAK SPACE = U+FEFF)
-# and its possible byte string values
-# for UTF8/UTF16/UTF32 output and little/big endian machines
-#
-
-# UTF-8
-BOM_UTF8 = b'\xef\xbb\xbf'
-
-# UTF-16, little endian
-BOM_LE = BOM_UTF16_LE = b'\xff\xfe'
-
-# UTF-16, big endian
-BOM_BE = BOM_UTF16_BE = b'\xfe\xff'
-
-# UTF-32, little endian
-BOM_UTF32_LE = b'\xff\xfe\x00\x00'
-
-# UTF-32, big endian
-BOM_UTF32_BE = b'\x00\x00\xfe\xff'
-
-if sys.byteorder == 'little':
-
- # UTF-16, native endianness
- BOM = BOM_UTF16 = BOM_UTF16_LE
-
- # UTF-32, native endianness
- BOM_UTF32 = BOM_UTF32_LE
-
-else:
-
- # UTF-16, native endianness
- BOM = BOM_UTF16 = BOM_UTF16_BE
-
- # UTF-32, native endianness
- BOM_UTF32 = BOM_UTF32_BE
-
-# Old broken names (don't use in new code)
-BOM32_LE = BOM_UTF16_LE
-BOM32_BE = BOM_UTF16_BE
-BOM64_LE = BOM_UTF32_LE
-BOM64_BE = BOM_UTF32_BE
-
-
-### Codec base classes (defining the API)
-
-class CodecInfo(tuple):
- """Codec details when looking up the codec registry"""
-
- # Private API to allow Python 3.4 to blacklist the known non-Unicode
- # codecs in the standard library. A more general mechanism to
- # reliably distinguish test encodings from other codecs will hopefully
- # be defined for Python 3.5
- #
- # See http://bugs.python.org/issue19619
- _is_text_encoding = True # Assume codecs are text encodings by default
-
- def __new__(cls, encode, decode, streamreader=None, streamwriter=None,
- incrementalencoder=None, incrementaldecoder=None, name=None,
- *, _is_text_encoding=None):
- self = tuple.__new__(cls, (encode, decode, streamreader, streamwriter))
- self.name = name
- self.encode = encode
- self.decode = decode
- self.incrementalencoder = incrementalencoder
- self.incrementaldecoder = incrementaldecoder
- self.streamwriter = streamwriter
- self.streamreader = streamreader
- if _is_text_encoding is not None:
- self._is_text_encoding = _is_text_encoding
- return self
-
- def __repr__(self):
- return "<%s.%s object for encoding %s at %#x>" % \
- (self.__class__.__module__, self.__class__.__qualname__,
- self.name, id(self))
-
-class Codec:
-
- """ Defines the interface for stateless encoders/decoders.
-
- The .encode()/.decode() methods may use different error
- handling schemes by providing the errors argument. These
- string values are predefined:
-
- 'strict' - raise a ValueError error (or a subclass)
- 'ignore' - ignore the character and continue with the next
- 'replace' - replace with a suitable replacement character;
- Python will use the official U+FFFD REPLACEMENT
- CHARACTER for the builtin Unicode codecs on
- decoding and '?' on encoding.
- 'surrogateescape' - replace with private code points U+DCnn.
- 'xmlcharrefreplace' - Replace with the appropriate XML
- character reference (only for encoding).
- 'backslashreplace' - Replace with backslashed escape sequences.
- 'namereplace' - Replace with \\N{...} escape sequences
- (only for encoding).
-
- The set of allowed values can be extended via register_error.
-
- """
- def encode(self, input, errors='strict'):
-
- """ Encodes the object input and returns a tuple (output
- object, length consumed).
-
- errors defines the error handling to apply. It defaults to
- 'strict' handling.
-
- The method may not store state in the Codec instance. Use
- StreamWriter for codecs which have to keep state in order to
- make encoding efficient.
-
- The encoder must be able to handle zero length input and
- return an empty object of the output object type in this
- situation.
-
- """
- raise NotImplementedError
-
- def decode(self, input, errors='strict'):
-
- """ Decodes the object input and returns a tuple (output
- object, length consumed).
-
- input must be an object which provides the bf_getreadbuf
- buffer slot. Python strings, buffer objects and memory
- mapped files are examples of objects providing this slot.
-
- errors defines the error handling to apply. It defaults to
- 'strict' handling.
-
- The method may not store state in the Codec instance. Use
- StreamReader for codecs which have to keep state in order to
- make decoding efficient.
-
- The decoder must be able to handle zero length input and
- return an empty object of the output object type in this
- situation.
-
- """
- raise NotImplementedError
-
-class IncrementalEncoder(object):
- """
- An IncrementalEncoder encodes an input in multiple steps. The input can
- be passed piece by piece to the encode() method. The IncrementalEncoder
- remembers the state of the encoding process between calls to encode().
- """
- def __init__(self, errors='strict'):
- """
- Creates an IncrementalEncoder instance.
-
- The IncrementalEncoder may use different error handling schemes by
- providing the errors keyword argument. See the module docstring
- for a list of possible values.
- """
- self.errors = errors
- self.buffer = ""
-
- def encode(self, input, final=False):
- """
- Encodes input and returns the resulting object.
- """
- raise NotImplementedError
-
- def reset(self):
- """
- Resets the encoder to the initial state.
- """
-
- def getstate(self):
- """
- Return the current state of the encoder.
- """
- return 0
-
- def setstate(self, state):
- """
- Set the current state of the encoder. state must have been
- returned by getstate().
- """
-
-class BufferedIncrementalEncoder(IncrementalEncoder):
- """
- This subclass of IncrementalEncoder can be used as the baseclass for an
- incremental encoder if the encoder must keep some of the output in a
- buffer between calls to encode().
- """
- def __init__(self, errors='strict'):
- IncrementalEncoder.__init__(self, errors)
- # unencoded input that is kept between calls to encode()
- self.buffer = ""
-
- def _buffer_encode(self, input, errors, final):
- # Overwrite this method in subclasses: It must encode input
- # and return an (output, length consumed) tuple
- raise NotImplementedError
-
- def encode(self, input, final=False):
- # encode input (taking the buffer into account)
- data = self.buffer + input
- (result, consumed) = self._buffer_encode(data, self.errors, final)
- # keep unencoded input until the next call
- self.buffer = data[consumed:]
- return result
-
- def reset(self):
- IncrementalEncoder.reset(self)
- self.buffer = ""
-
- def getstate(self):
- return self.buffer or 0
-
- def setstate(self, state):
- self.buffer = state or ""
-
-class IncrementalDecoder(object):
- """
- An IncrementalDecoder decodes an input in multiple steps. The input can
- be passed piece by piece to the decode() method. The IncrementalDecoder
- remembers the state of the decoding process between calls to decode().
- """
- def __init__(self, errors='strict'):
- """
- Create an IncrementalDecoder instance.
-
- The IncrementalDecoder may use different error handling schemes by
- providing the errors keyword argument. See the module docstring
- for a list of possible values.
- """
- self.errors = errors
-
- def decode(self, input, final=False):
- """
- Decode input and returns the resulting object.
- """
- raise NotImplementedError
-
- def reset(self):
- """
- Reset the decoder to the initial state.
- """
-
- def getstate(self):
- """
- Return the current state of the decoder.
-
- This must be a (buffered_input, additional_state_info) tuple.
- buffered_input must be a bytes object containing bytes that
- were passed to decode() that have not yet been converted.
- additional_state_info must be a non-negative integer
- representing the state of the decoder WITHOUT yet having
- processed the contents of buffered_input. In the initial state
- and after reset(), getstate() must return (b"", 0).
- """
- return (b"", 0)
-
- def setstate(self, state):
- """
- Set the current state of the decoder.
-
- state must have been returned by getstate(). The effect of
- setstate((b"", 0)) must be equivalent to reset().
- """
-
-class BufferedIncrementalDecoder(IncrementalDecoder):
- """
- This subclass of IncrementalDecoder can be used as the baseclass for an
- incremental decoder if the decoder must be able to handle incomplete
- byte sequences.
- """
- def __init__(self, errors='strict'):
- IncrementalDecoder.__init__(self, errors)
- # undecoded input that is kept between calls to decode()
- self.buffer = b""
-
- def _buffer_decode(self, input, errors, final):
- # Overwrite this method in subclasses: It must decode input
- # and return an (output, length consumed) tuple
- raise NotImplementedError
-
- def decode(self, input, final=False):
- # decode input (taking the buffer into account)
- data = self.buffer + input
- (result, consumed) = self._buffer_decode(data, self.errors, final)
- # keep undecoded input until the next call
- self.buffer = data[consumed:]
- return result
-
- def reset(self):
- IncrementalDecoder.reset(self)
- self.buffer = b""
-
- def getstate(self):
- # additional state info is always 0
- return (self.buffer, 0)
-
- def setstate(self, state):
- # ignore additional state info
- self.buffer = state[0]
-
-#
-# The StreamWriter and StreamReader class provide generic working
-# interfaces which can be used to implement new encoding submodules
-# very easily. See encodings/utf_8.py for an example on how this is
-# done.
-#
-
-class StreamWriter(Codec):
-
- def __init__(self, stream, errors='strict'):
-
- """ Creates a StreamWriter instance.
-
- stream must be a file-like object open for writing.
-
- The StreamWriter may use different error handling
- schemes by providing the errors keyword argument. These
- parameters are predefined:
-
- 'strict' - raise a ValueError (or a subclass)
- 'ignore' - ignore the character and continue with the next
- 'replace'- replace with a suitable replacement character
- 'xmlcharrefreplace' - Replace with the appropriate XML
- character reference.
- 'backslashreplace' - Replace with backslashed escape
- sequences.
- 'namereplace' - Replace with \\N{...} escape sequences.
-
- The set of allowed parameter values can be extended via
- register_error.
- """
- self.stream = stream
- self.errors = errors
-
- def write(self, object):
-
- """ Writes the object's contents encoded to self.stream.
- """
- data, consumed = self.encode(object, self.errors)
- self.stream.write(data)
-
- def writelines(self, list):
-
- """ Writes the concatenated list of strings to the stream
- using .write().
- """
- self.write(''.join(list))
-
- def reset(self):
-
- """ Flushes and resets the codec buffers used for keeping state.
-
- Calling this method should ensure that the data on the
- output is put into a clean state, that allows appending
- of new fresh data without having to rescan the whole
- stream to recover state.
-
- """
- pass
-
- def seek(self, offset, whence=0):
- self.stream.seek(offset, whence)
- if whence == 0 and offset == 0:
- self.reset()
-
- def __getattr__(self, name,
- getattr=getattr):
-
- """ Inherit all other methods from the underlying stream.
- """
- return getattr(self.stream, name)
-
- def __enter__(self):
- return self
-
- def __exit__(self, type, value, tb):
- self.stream.close()
-
-###
-
-class StreamReader(Codec):
-
- charbuffertype = str
-
- def __init__(self, stream, errors='strict'):
-
- """ Creates a StreamReader instance.
-
- stream must be a file-like object open for reading.
-
- The StreamReader may use different error handling
- schemes by providing the errors keyword argument. These
- parameters are predefined:
-
- 'strict' - raise a ValueError (or a subclass)
- 'ignore' - ignore the character and continue with the next
- 'replace'- replace with a suitable replacement character
- 'backslashreplace' - Replace with backslashed escape sequences;
-
- The set of allowed parameter values can be extended via
- register_error.
- """
- self.stream = stream
- self.errors = errors
- self.bytebuffer = b""
- self._empty_charbuffer = self.charbuffertype()
- self.charbuffer = self._empty_charbuffer
- self.linebuffer = None
-
- def decode(self, input, errors='strict'):
- raise NotImplementedError
-
- def read(self, size=-1, chars=-1, firstline=False):
-
- """ Decodes data from the stream self.stream and returns the
- resulting object.
-
- chars indicates the number of decoded code points or bytes to
- return. read() will never return more data than requested,
- but it might return less, if there is not enough available.
-
- size indicates the approximate maximum number of decoded
- bytes or code points to read for decoding. The decoder
- can modify this setting as appropriate. The default value
- -1 indicates to read and decode as much as possible. size
- is intended to prevent having to decode huge files in one
- step.
-
- If firstline is true, and a UnicodeDecodeError happens
- after the first line terminator in the input only the first line
- will be returned, the rest of the input will be kept until the
- next call to read().
-
- The method should use a greedy read strategy, meaning that
- it should read as much data as is allowed within the
- definition of the encoding and the given size, e.g. if
- optional encoding endings or state markers are available
- on the stream, these should be read too.
- """
- # If we have lines cached, first merge them back into characters
- if self.linebuffer:
- self.charbuffer = self._empty_charbuffer.join(self.linebuffer)
- self.linebuffer = None
-
- if chars < 0:
- # For compatibility with other read() methods that take a
- # single argument
- chars = size
-
- # read until we get the required number of characters (if available)
- while True:
- # can the request be satisfied from the character buffer?
- if chars >= 0:
- if len(self.charbuffer) >= chars:
- break
- # we need more data
- if size < 0:
- newdata = self.stream.read()
- else:
- newdata = self.stream.read(size)
- # decode bytes (those remaining from the last call included)
- data = self.bytebuffer + newdata
- if not data:
- break
- try:
- newchars, decodedbytes = self.decode(data, self.errors)
- except UnicodeDecodeError as exc:
- if firstline:
- newchars, decodedbytes = \
- self.decode(data[:exc.start], self.errors)
- lines = newchars.splitlines(keepends=True)
- if len(lines)<=1:
- raise
- else:
- raise
- # keep undecoded bytes until the next call
- self.bytebuffer = data[decodedbytes:]
- # put new characters in the character buffer
- self.charbuffer += newchars
- # there was no data available
- if not newdata:
- break
- if chars < 0:
- # Return everything we've got
- result = self.charbuffer
- self.charbuffer = self._empty_charbuffer
- else:
- # Return the first chars characters
- result = self.charbuffer[:chars]
- self.charbuffer = self.charbuffer[chars:]
- return result
-
- def readline(self, size=None, keepends=True):
-
- """ Read one line from the input stream and return the
- decoded data.
-
- size, if given, is passed as size argument to the
- read() method.
-
- """
- # If we have lines cached from an earlier read, return
- # them unconditionally
- if self.linebuffer:
- line = self.linebuffer[0]
- del self.linebuffer[0]
- if len(self.linebuffer) == 1:
- # revert to charbuffer mode; we might need more data
- # next time
- self.charbuffer = self.linebuffer[0]
- self.linebuffer = None
- if not keepends:
- line = line.splitlines(keepends=False)[0]
- return line
-
- readsize = size or 72
- line = self._empty_charbuffer
- # If size is given, we call read() only once
- while True:
- data = self.read(readsize, firstline=True)
- if data:
- # If we're at a "\r" read one extra character (which might
- # be a "\n") to get a proper line ending. If the stream is
- # temporarily exhausted we return the wrong line ending.
- if (isinstance(data, str) and data.endswith("\r")) or \
- (isinstance(data, bytes) and data.endswith(b"\r")):
- data += self.read(size=1, chars=1)
-
- line += data
- lines = line.splitlines(keepends=True)
- if lines:
- if len(lines) > 1:
- # More than one line result; the first line is a full line
- # to return
- line = lines[0]
- del lines[0]
- if len(lines) > 1:
- # cache the remaining lines
- lines[-1] += self.charbuffer
- self.linebuffer = lines
- self.charbuffer = None
- else:
- # only one remaining line, put it back into charbuffer
- self.charbuffer = lines[0] + self.charbuffer
- if not keepends:
- line = line.splitlines(keepends=False)[0]
- break
- line0withend = lines[0]
- line0withoutend = lines[0].splitlines(keepends=False)[0]
- if line0withend != line0withoutend: # We really have a line end
- # Put the rest back together and keep it until the next call
- self.charbuffer = self._empty_charbuffer.join(lines[1:]) + \
- self.charbuffer
- if keepends:
- line = line0withend
- else:
- line = line0withoutend
- break
- # we didn't get anything or this was our only try
- if not data or size is not None:
- if line and not keepends:
- line = line.splitlines(keepends=False)[0]
- break
- if readsize < 8000:
- readsize *= 2
- return line
-
- def readlines(self, sizehint=None, keepends=True):
-
- """ Read all lines available on the input stream
- and return them as a list.
-
- Line breaks are implemented using the codec's decoder
- method and are included in the list entries.
-
- sizehint, if given, is ignored since there is no efficient
- way to finding the true end-of-line.
-
- """
- data = self.read()
- return data.splitlines(keepends)
-
- def reset(self):
-
- """ Resets the codec buffers used for keeping state.
-
- Note that no stream repositioning should take place.
- This method is primarily intended to be able to recover
- from decoding errors.
-
- """
- self.bytebuffer = b""
- self.charbuffer = self._empty_charbuffer
- self.linebuffer = None
-
- def seek(self, offset, whence=0):
- """ Set the input stream's current position.
-
- Resets the codec buffers used for keeping state.
- """
- self.stream.seek(offset, whence)
- self.reset()
-
- def __next__(self):
-
- """ Return the next decoded line from the input stream."""
- line = self.readline()
- if line:
- return line
- raise StopIteration
-
- def __iter__(self):
- return self
-
- def __getattr__(self, name,
- getattr=getattr):
-
- """ Inherit all other methods from the underlying stream.
- """
- return getattr(self.stream, name)
-
- def __enter__(self):
- return self
-
- def __exit__(self, type, value, tb):
- self.stream.close()
-
-###
-
-class StreamReaderWriter:
-
- """ StreamReaderWriter instances allow wrapping streams which
- work in both read and write modes.
-
- The design is such that one can use the factory functions
- returned by the codec.lookup() function to construct the
- instance.
-
- """
- # Optional attributes set by the file wrappers below
- encoding = 'unknown'
-
- def __init__(self, stream, Reader, Writer, errors='strict'):
-
- """ Creates a StreamReaderWriter instance.
-
- stream must be a Stream-like object.
-
- Reader, Writer must be factory functions or classes
- providing the StreamReader, StreamWriter interface resp.
-
- Error handling is done in the same way as defined for the
- StreamWriter/Readers.
-
- """
- self.stream = stream
- self.reader = Reader(stream, errors)
- self.writer = Writer(stream, errors)
- self.errors = errors
-
- def read(self, size=-1):
-
- return self.reader.read(size)
-
- def readline(self, size=None):
-
- return self.reader.readline(size)
-
- def readlines(self, sizehint=None):
-
- return self.reader.readlines(sizehint)
-
- def __next__(self):
-
- """ Return the next decoded line from the input stream."""
- return next(self.reader)
-
- def __iter__(self):
- return self
-
- def write(self, data):
-
- return self.writer.write(data)
-
- def writelines(self, list):
-
- return self.writer.writelines(list)
-
- def reset(self):
-
- self.reader.reset()
- self.writer.reset()
-
- def seek(self, offset, whence=0):
- self.stream.seek(offset, whence)
- self.reader.reset()
- if whence == 0 and offset == 0:
- self.writer.reset()
-
- def __getattr__(self, name,
- getattr=getattr):
-
- """ Inherit all other methods from the underlying stream.
- """
- return getattr(self.stream, name)
-
- # these are needed to make "with StreamReaderWriter(...)" work properly
-
- def __enter__(self):
- return self
-
- def __exit__(self, type, value, tb):
- self.stream.close()
-
-###
-
-class StreamRecoder:
-
- """ StreamRecoder instances translate data from one encoding to another.
-
- They use the complete set of APIs returned by the
- codecs.lookup() function to implement their task.
-
- Data written to the StreamRecoder is first decoded into an
- intermediate format (depending on the "decode" codec) and then
- written to the underlying stream using an instance of the provided
- Writer class.
-
- In the other direction, data is read from the underlying stream using
- a Reader instance and then encoded and returned to the caller.
-
- """
- # Optional attributes set by the file wrappers below
- data_encoding = 'unknown'
- file_encoding = 'unknown'
-
- def __init__(self, stream, encode, decode, Reader, Writer,
- errors='strict'):
-
- """ Creates a StreamRecoder instance which implements a two-way
- conversion: encode and decode work on the frontend (the
- data visible to .read() and .write()) while Reader and Writer
- work on the backend (the data in stream).
-
- You can use these objects to do transparent
- transcodings from e.g. latin-1 to utf-8 and back.
-
- stream must be a file-like object.
-
- encode and decode must adhere to the Codec interface; Reader and
- Writer must be factory functions or classes providing the
- StreamReader and StreamWriter interfaces resp.
-
- Error handling is done in the same way as defined for the
- StreamWriter/Readers.
-
- """
- self.stream = stream
- self.encode = encode
- self.decode = decode
- self.reader = Reader(stream, errors)
- self.writer = Writer(stream, errors)
- self.errors = errors
-
- def read(self, size=-1):
-
- data = self.reader.read(size)
- data, bytesencoded = self.encode(data, self.errors)
- return data
-
- def readline(self, size=None):
-
- if size is None:
- data = self.reader.readline()
- else:
- data = self.reader.readline(size)
- data, bytesencoded = self.encode(data, self.errors)
- return data
-
- def readlines(self, sizehint=None):
-
- data = self.reader.read()
- data, bytesencoded = self.encode(data, self.errors)
- return data.splitlines(keepends=True)
-
- def __next__(self):
-
- """ Return the next decoded line from the input stream."""
- data = next(self.reader)
- data, bytesencoded = self.encode(data, self.errors)
- return data
-
- def __iter__(self):
- return self
-
- def write(self, data):
-
- data, bytesdecoded = self.decode(data, self.errors)
- return self.writer.write(data)
-
- def writelines(self, list):
-
- data = b''.join(list)
- data, bytesdecoded = self.decode(data, self.errors)
- return self.writer.write(data)
-
- def reset(self):
-
- self.reader.reset()
- self.writer.reset()
-
- def seek(self, offset, whence=0):
- # Seeks must be propagated to both the readers and writers
- # as they might need to reset their internal buffers.
- self.reader.seek(offset, whence)
- self.writer.seek(offset, whence)
-
- def __getattr__(self, name,
- getattr=getattr):
-
- """ Inherit all other methods from the underlying stream.
- """
- return getattr(self.stream, name)
-
- def __enter__(self):
- return self
-
- def __exit__(self, type, value, tb):
- self.stream.close()
-
-### Shortcuts
-
-def open(filename, mode='r', encoding=None, errors='strict', buffering=1):
-
- """ Open an encoded file using the given mode and return
- a wrapped version providing transparent encoding/decoding.
-
- Note: The wrapped version will only accept the object format
- defined by the codecs, i.e. Unicode objects for most builtin
- codecs. Output is also codec dependent and will usually be
- Unicode as well.
-
- Underlying encoded files are always opened in binary mode.
- The default file mode is 'r', meaning to open the file in read mode.
-
- encoding specifies the encoding which is to be used for the
- file.
-
- errors may be given to define the error handling. It defaults
- to 'strict' which causes ValueErrors to be raised in case an
- encoding error occurs.
-
- buffering has the same meaning as for the builtin open() API.
- It defaults to line buffered.
-
- The returned wrapped file object provides an extra attribute
- .encoding which allows querying the used encoding. This
- attribute is only available if an encoding was specified as
- parameter.
-
- """
- if encoding is not None and \
- 'b' not in mode:
- # Force opening of the file in binary mode
- mode = mode + 'b'
- file = builtins.open(filename, mode, buffering)
- if encoding is None:
- return file
- info = lookup(encoding)
- srw = StreamReaderWriter(file, info.streamreader, info.streamwriter, errors)
- # Add attributes to simplify introspection
- srw.encoding = encoding
- return srw
-
-def EncodedFile(file, data_encoding, file_encoding=None, errors='strict'):
-
- """ Return a wrapped version of file which provides transparent
- encoding translation.
-
- Data written to the wrapped file is decoded according
- to the given data_encoding and then encoded to the underlying
- file using file_encoding. The intermediate data type
- will usually be Unicode but depends on the specified codecs.
-
- Bytes read from the file are decoded using file_encoding and then
- passed back to the caller encoded using data_encoding.
-
- If file_encoding is not given, it defaults to data_encoding.
-
- errors may be given to define the error handling. It defaults
- to 'strict' which causes ValueErrors to be raised in case an
- encoding error occurs.
-
- The returned wrapped file object provides two extra attributes
- .data_encoding and .file_encoding which reflect the given
- parameters of the same name. The attributes can be used for
- introspection by Python programs.
-
- """
- if file_encoding is None:
- file_encoding = data_encoding
- data_info = lookup(data_encoding)
- file_info = lookup(file_encoding)
- sr = StreamRecoder(file, data_info.encode, data_info.decode,
- file_info.streamreader, file_info.streamwriter, errors)
- # Add attributes to simplify introspection
- sr.data_encoding = data_encoding
- sr.file_encoding = file_encoding
- return sr
-
-### Helpers for codec lookup
-
-def getencoder(encoding):
-
- """ Lookup up the codec for the given encoding and return
- its encoder function.
-
- Raises a LookupError in case the encoding cannot be found.
-
- """
- return lookup(encoding).encode
-
-def getdecoder(encoding):
-
- """ Lookup up the codec for the given encoding and return
- its decoder function.
-
- Raises a LookupError in case the encoding cannot be found.
-
- """
- return lookup(encoding).decode
-
-def getincrementalencoder(encoding):
-
- """ Lookup up the codec for the given encoding and return
- its IncrementalEncoder class or factory function.
-
- Raises a LookupError in case the encoding cannot be found
- or the codecs doesn't provide an incremental encoder.
-
- """
- encoder = lookup(encoding).incrementalencoder
- if encoder is None:
- raise LookupError(encoding)
- return encoder
-
-def getincrementaldecoder(encoding):
-
- """ Lookup up the codec for the given encoding and return
- its IncrementalDecoder class or factory function.
-
- Raises a LookupError in case the encoding cannot be found
- or the codecs doesn't provide an incremental decoder.
-
- """
- decoder = lookup(encoding).incrementaldecoder
- if decoder is None:
- raise LookupError(encoding)
- return decoder
-
-def getreader(encoding):
-
- """ Lookup up the codec for the given encoding and return
- its StreamReader class or factory function.
-
- Raises a LookupError in case the encoding cannot be found.
-
- """
- return lookup(encoding).streamreader
-
-def getwriter(encoding):
-
- """ Lookup up the codec for the given encoding and return
- its StreamWriter class or factory function.
-
- Raises a LookupError in case the encoding cannot be found.
-
- """
- return lookup(encoding).streamwriter
-
-def iterencode(iterator, encoding, errors='strict', **kwargs):
- """
- Encoding iterator.
-
- Encodes the input strings from the iterator using an IncrementalEncoder.
-
- errors and kwargs are passed through to the IncrementalEncoder
- constructor.
- """
- encoder = getincrementalencoder(encoding)(errors, **kwargs)
- for input in iterator:
- output = encoder.encode(input)
- if output:
- yield output
- output = encoder.encode("", True)
- if output:
- yield output
-
-def iterdecode(iterator, encoding, errors='strict', **kwargs):
- """
- Decoding iterator.
-
- Decodes the input strings from the iterator using an IncrementalDecoder.
-
- errors and kwargs are passed through to the IncrementalDecoder
- constructor.
- """
- decoder = getincrementaldecoder(encoding)(errors, **kwargs)
- for input in iterator:
- output = decoder.decode(input)
- if output:
- yield output
- output = decoder.decode(b"", True)
- if output:
- yield output
-
-### Helpers for charmap-based codecs
-
-def make_identity_dict(rng):
-
- """ make_identity_dict(rng) -> dict
-
- Return a dictionary where elements of the rng sequence are
- mapped to themselves.
-
- """
- return {i:i for i in rng}
-
-def make_encoding_map(decoding_map):
-
- """ Creates an encoding map from a decoding map.
-
- If a target mapping in the decoding map occurs multiple
- times, then that target is mapped to None (undefined mapping),
- causing an exception when encountered by the charmap codec
- during translation.
-
- One example where this happens is cp875.py which decodes
- multiple character to \\u001a.
-
- """
- m = {}
- for k,v in decoding_map.items():
- if not v in m:
- m[v] = k
- else:
- m[v] = None
- return m
-
-### error handlers
-
-try:
- strict_errors = lookup_error("strict")
- ignore_errors = lookup_error("ignore")
- replace_errors = lookup_error("replace")
- xmlcharrefreplace_errors = lookup_error("xmlcharrefreplace")
- backslashreplace_errors = lookup_error("backslashreplace")
- namereplace_errors = lookup_error("namereplace")
-except LookupError:
- # In --disable-unicode builds, these error handler are missing
- strict_errors = None
- ignore_errors = None
- replace_errors = None
- xmlcharrefreplace_errors = None
- backslashreplace_errors = None
- namereplace_errors = None
-
-# Tell modulefinder that using codecs probably needs the encodings
-# package
-_false = 0
-if _false:
- import encodings
-
-### Tests
-
-if __name__ == '__main__':
-
- # Make stdout translate Latin-1 output into UTF-8 output
- sys.stdout = EncodedFile(sys.stdout, 'latin-1', 'utf-8')
-
- # Have stdin translate Latin-1 input into UTF-8 input
- sys.stdin = EncodedFile(sys.stdin, 'utf-8', 'latin-1')
diff --git a/EasyTrans/Lib/collections/__init__.py b/EasyTrans/Lib/collections/__init__.py
deleted file mode 100644
index 64bbee8f..00000000
--- a/EasyTrans/Lib/collections/__init__.py
+++ /dev/null
@@ -1,1299 +0,0 @@
-'''This module implements specialized container datatypes providing
-alternatives to Python's general purpose built-in containers, dict,
-list, set, and tuple.
-
-* namedtuple factory function for creating tuple subclasses with named fields
-* deque list-like container with fast appends and pops on either end
-* ChainMap dict-like class for creating a single view of multiple mappings
-* Counter dict subclass for counting hashable objects
-* OrderedDict dict subclass that remembers the order entries were added
-* defaultdict dict subclass that calls a factory function to supply missing values
-* UserDict wrapper around dictionary objects for easier dict subclassing
-* UserList wrapper around list objects for easier list subclassing
-* UserString wrapper around string objects for easier string subclassing
-
-'''
-
-__all__ = ['deque', 'defaultdict', 'namedtuple', 'UserDict', 'UserList',
- 'UserString', 'Counter', 'OrderedDict', 'ChainMap']
-
-import _collections_abc
-from operator import itemgetter as _itemgetter, eq as _eq
-from keyword import iskeyword as _iskeyword
-import sys as _sys
-import heapq as _heapq
-from _weakref import proxy as _proxy
-from itertools import repeat as _repeat, chain as _chain, starmap as _starmap
-from reprlib import recursive_repr as _recursive_repr
-
-try:
- from _collections import deque
-except ImportError:
- pass
-else:
- _collections_abc.MutableSequence.register(deque)
-
-try:
- from _collections import defaultdict
-except ImportError:
- pass
-
-
-def __getattr__(name):
- # For backwards compatibility, continue to make the collections ABCs
- # through Python 3.6 available through the collections module.
- # Note, no new collections ABCs were added in Python 3.7
- if name in _collections_abc.__all__:
- obj = getattr(_collections_abc, name)
- import warnings
- warnings.warn("Using or importing the ABCs from 'collections' instead "
- "of from 'collections.abc' is deprecated, "
- "and in 3.8 it will stop working",
- DeprecationWarning, stacklevel=2)
- globals()[name] = obj
- return obj
- raise AttributeError(f'module {__name__!r} has no attribute {name!r}')
-
-################################################################################
-### OrderedDict
-################################################################################
-
-class _OrderedDictKeysView(_collections_abc.KeysView):
-
- def __reversed__(self):
- yield from reversed(self._mapping)
-
-class _OrderedDictItemsView(_collections_abc.ItemsView):
-
- def __reversed__(self):
- for key in reversed(self._mapping):
- yield (key, self._mapping[key])
-
-class _OrderedDictValuesView(_collections_abc.ValuesView):
-
- def __reversed__(self):
- for key in reversed(self._mapping):
- yield self._mapping[key]
-
-class _Link(object):
- __slots__ = 'prev', 'next', 'key', '__weakref__'
-
-class OrderedDict(dict):
- 'Dictionary that remembers insertion order'
- # An inherited dict maps keys to values.
- # The inherited dict provides __getitem__, __len__, __contains__, and get.
- # The remaining methods are order-aware.
- # Big-O running times for all methods are the same as regular dictionaries.
-
- # The internal self.__map dict maps keys to links in a doubly linked list.
- # The circular doubly linked list starts and ends with a sentinel element.
- # The sentinel element never gets deleted (this simplifies the algorithm).
- # The sentinel is in self.__hardroot with a weakref proxy in self.__root.
- # The prev links are weakref proxies (to prevent circular references).
- # Individual links are kept alive by the hard reference in self.__map.
- # Those hard references disappear when a key is deleted from an OrderedDict.
-
- def __init__(*args, **kwds):
- '''Initialize an ordered dictionary. The signature is the same as
- regular dictionaries. Keyword argument order is preserved.
- '''
- if not args:
- raise TypeError("descriptor '__init__' of 'OrderedDict' object "
- "needs an argument")
- self, *args = args
- if len(args) > 1:
- raise TypeError('expected at most 1 arguments, got %d' % len(args))
- try:
- self.__root
- except AttributeError:
- self.__hardroot = _Link()
- self.__root = root = _proxy(self.__hardroot)
- root.prev = root.next = root
- self.__map = {}
- self.__update(*args, **kwds)
-
- def __setitem__(self, key, value,
- dict_setitem=dict.__setitem__, proxy=_proxy, Link=_Link):
- 'od.__setitem__(i, y) <==> od[i]=y'
- # Setting a new item creates a new link at the end of the linked list,
- # and the inherited dictionary is updated with the new key/value pair.
- if key not in self:
- self.__map[key] = link = Link()
- root = self.__root
- last = root.prev
- link.prev, link.next, link.key = last, root, key
- last.next = link
- root.prev = proxy(link)
- dict_setitem(self, key, value)
-
- def __delitem__(self, key, dict_delitem=dict.__delitem__):
- 'od.__delitem__(y) <==> del od[y]'
- # Deleting an existing item uses self.__map to find the link which gets
- # removed by updating the links in the predecessor and successor nodes.
- dict_delitem(self, key)
- link = self.__map.pop(key)
- link_prev = link.prev
- link_next = link.next
- link_prev.next = link_next
- link_next.prev = link_prev
- link.prev = None
- link.next = None
-
- def __iter__(self):
- 'od.__iter__() <==> iter(od)'
- # Traverse the linked list in order.
- root = self.__root
- curr = root.next
- while curr is not root:
- yield curr.key
- curr = curr.next
-
- def __reversed__(self):
- 'od.__reversed__() <==> reversed(od)'
- # Traverse the linked list in reverse order.
- root = self.__root
- curr = root.prev
- while curr is not root:
- yield curr.key
- curr = curr.prev
-
- def clear(self):
- 'od.clear() -> None. Remove all items from od.'
- root = self.__root
- root.prev = root.next = root
- self.__map.clear()
- dict.clear(self)
-
- def popitem(self, last=True):
- '''Remove and return a (key, value) pair from the dictionary.
-
- Pairs are returned in LIFO order if last is true or FIFO order if false.
- '''
- if not self:
- raise KeyError('dictionary is empty')
- root = self.__root
- if last:
- link = root.prev
- link_prev = link.prev
- link_prev.next = root
- root.prev = link_prev
- else:
- link = root.next
- link_next = link.next
- root.next = link_next
- link_next.prev = root
- key = link.key
- del self.__map[key]
- value = dict.pop(self, key)
- return key, value
-
- def move_to_end(self, key, last=True):
- '''Move an existing element to the end (or beginning if last is false).
-
- Raise KeyError if the element does not exist.
- '''
- link = self.__map[key]
- link_prev = link.prev
- link_next = link.next
- soft_link = link_next.prev
- link_prev.next = link_next
- link_next.prev = link_prev
- root = self.__root
- if last:
- last = root.prev
- link.prev = last
- link.next = root
- root.prev = soft_link
- last.next = link
- else:
- first = root.next
- link.prev = root
- link.next = first
- first.prev = soft_link
- root.next = link
-
- def __sizeof__(self):
- sizeof = _sys.getsizeof
- n = len(self) + 1 # number of links including root
- size = sizeof(self.__dict__) # instance dictionary
- size += sizeof(self.__map) * 2 # internal dict and inherited dict
- size += sizeof(self.__hardroot) * n # link objects
- size += sizeof(self.__root) * n # proxy objects
- return size
-
- update = __update = _collections_abc.MutableMapping.update
-
- def keys(self):
- "D.keys() -> a set-like object providing a view on D's keys"
- return _OrderedDictKeysView(self)
-
- def items(self):
- "D.items() -> a set-like object providing a view on D's items"
- return _OrderedDictItemsView(self)
-
- def values(self):
- "D.values() -> an object providing a view on D's values"
- return _OrderedDictValuesView(self)
-
- __ne__ = _collections_abc.MutableMapping.__ne__
-
- __marker = object()
-
- def pop(self, key, default=__marker):
- '''od.pop(k[,d]) -> v, remove specified key and return the corresponding
- value. If key is not found, d is returned if given, otherwise KeyError
- is raised.
-
- '''
- if key in self:
- result = self[key]
- del self[key]
- return result
- if default is self.__marker:
- raise KeyError(key)
- return default
-
- def setdefault(self, key, default=None):
- '''Insert key with a value of default if key is not in the dictionary.
-
- Return the value for key if key is in the dictionary, else default.
- '''
- if key in self:
- return self[key]
- self[key] = default
- return default
-
- @_recursive_repr()
- def __repr__(self):
- 'od.__repr__() <==> repr(od)'
- if not self:
- return '%s()' % (self.__class__.__name__,)
- return '%s(%r)' % (self.__class__.__name__, list(self.items()))
-
- def __reduce__(self):
- 'Return state information for pickling'
- inst_dict = vars(self).copy()
- for k in vars(OrderedDict()):
- inst_dict.pop(k, None)
- return self.__class__, (), inst_dict or None, None, iter(self.items())
-
- def copy(self):
- 'od.copy() -> a shallow copy of od'
- return self.__class__(self)
-
- @classmethod
- def fromkeys(cls, iterable, value=None):
- '''Create a new ordered dictionary with keys from iterable and values set to value.
- '''
- self = cls()
- for key in iterable:
- self[key] = value
- return self
-
- def __eq__(self, other):
- '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive
- while comparison to a regular mapping is order-insensitive.
-
- '''
- if isinstance(other, OrderedDict):
- return dict.__eq__(self, other) and all(map(_eq, self, other))
- return dict.__eq__(self, other)
-
-
-try:
- from _collections import OrderedDict
-except ImportError:
- # Leave the pure Python version in place.
- pass
-
-
-################################################################################
-### namedtuple
-################################################################################
-
-_nt_itemgetters = {}
-
-def namedtuple(typename, field_names, *, rename=False, defaults=None, module=None):
- """Returns a new subclass of tuple with named fields.
-
- >>> Point = namedtuple('Point', ['x', 'y'])
- >>> Point.__doc__ # docstring for the new class
- 'Point(x, y)'
- >>> p = Point(11, y=22) # instantiate with positional args or keywords
- >>> p[0] + p[1] # indexable like a plain tuple
- 33
- >>> x, y = p # unpack like a regular tuple
- >>> x, y
- (11, 22)
- >>> p.x + p.y # fields also accessible by name
- 33
- >>> d = p._asdict() # convert to a dictionary
- >>> d['x']
- 11
- >>> Point(**d) # convert from a dictionary
- Point(x=11, y=22)
- >>> p._replace(x=100) # _replace() is like str.replace() but targets named fields
- Point(x=100, y=22)
-
- """
-
- # Validate the field names. At the user's option, either generate an error
- # message or automatically replace the field name with a valid name.
- if isinstance(field_names, str):
- field_names = field_names.replace(',', ' ').split()
- field_names = list(map(str, field_names))
- typename = _sys.intern(str(typename))
-
- if rename:
- seen = set()
- for index, name in enumerate(field_names):
- if (not name.isidentifier()
- or _iskeyword(name)
- or name.startswith('_')
- or name in seen):
- field_names[index] = f'_{index}'
- seen.add(name)
-
- for name in [typename] + field_names:
- if type(name) is not str:
- raise TypeError('Type names and field names must be strings')
- if not name.isidentifier():
- raise ValueError('Type names and field names must be valid '
- f'identifiers: {name!r}')
- if _iskeyword(name):
- raise ValueError('Type names and field names cannot be a '
- f'keyword: {name!r}')
-
- seen = set()
- for name in field_names:
- if name.startswith('_') and not rename:
- raise ValueError('Field names cannot start with an underscore: '
- f'{name!r}')
- if name in seen:
- raise ValueError(f'Encountered duplicate field name: {name!r}')
- seen.add(name)
-
- field_defaults = {}
- if defaults is not None:
- defaults = tuple(defaults)
- if len(defaults) > len(field_names):
- raise TypeError('Got more default values than field names')
- field_defaults = dict(reversed(list(zip(reversed(field_names),
- reversed(defaults)))))
-
- # Variables used in the methods and docstrings
- field_names = tuple(map(_sys.intern, field_names))
- num_fields = len(field_names)
- arg_list = repr(field_names).replace("'", "")[1:-1]
- repr_fmt = '(' + ', '.join(f'{name}=%r' for name in field_names) + ')'
- tuple_new = tuple.__new__
- _len = len
-
- # Create all the named tuple methods to be added to the class namespace
-
- s = f'def __new__(_cls, {arg_list}): return _tuple_new(_cls, ({arg_list}))'
- namespace = {'_tuple_new': tuple_new, '__name__': f'namedtuple_{typename}'}
- # Note: exec() has the side-effect of interning the field names
- exec(s, namespace)
- __new__ = namespace['__new__']
- __new__.__doc__ = f'Create new instance of {typename}({arg_list})'
- if defaults is not None:
- __new__.__defaults__ = defaults
-
- @classmethod
- def _make(cls, iterable):
- result = tuple_new(cls, iterable)
- if _len(result) != num_fields:
- raise TypeError(f'Expected {num_fields} arguments, got {len(result)}')
- return result
-
- _make.__func__.__doc__ = (f'Make a new {typename} object from a sequence '
- 'or iterable')
-
- def _replace(_self, **kwds):
- result = _self._make(map(kwds.pop, field_names, _self))
- if kwds:
- raise ValueError(f'Got unexpected field names: {list(kwds)!r}')
- return result
-
- _replace.__doc__ = (f'Return a new {typename} object replacing specified '
- 'fields with new values')
-
- def __repr__(self):
- 'Return a nicely formatted representation string'
- return self.__class__.__name__ + repr_fmt % self
-
- def _asdict(self):
- 'Return a new OrderedDict which maps field names to their values.'
- return OrderedDict(zip(self._fields, self))
-
- def __getnewargs__(self):
- 'Return self as a plain tuple. Used by copy and pickle.'
- return tuple(self)
-
- # Modify function metadata to help with introspection and debugging
-
- for method in (__new__, _make.__func__, _replace,
- __repr__, _asdict, __getnewargs__):
- method.__qualname__ = f'{typename}.{method.__name__}'
-
- # Build-up the class namespace dictionary
- # and use type() to build the result class
- class_namespace = {
- '__doc__': f'{typename}({arg_list})',
- '__slots__': (),
- '_fields': field_names,
- '_field_defaults': field_defaults,
- # alternate spelling for backward compatiblity
- '_fields_defaults': field_defaults,
- '__new__': __new__,
- '_make': _make,
- '_replace': _replace,
- '__repr__': __repr__,
- '_asdict': _asdict,
- '__getnewargs__': __getnewargs__,
- }
- cache = _nt_itemgetters
- for index, name in enumerate(field_names):
- try:
- itemgetter_object, doc = cache[index]
- except KeyError:
- itemgetter_object = _itemgetter(index)
- doc = f'Alias for field number {index}'
- cache[index] = itemgetter_object, doc
- class_namespace[name] = property(itemgetter_object, doc=doc)
-
- result = type(typename, (tuple,), class_namespace)
-
- # For pickling to work, the __module__ variable needs to be set to the frame
- # where the named tuple is created. Bypass this step in environments where
- # sys._getframe is not defined (Jython for example) or sys._getframe is not
- # defined for arguments greater than 0 (IronPython), or where the user has
- # specified a particular module.
- if module is None:
- try:
- module = _sys._getframe(1).f_globals.get('__name__', '__main__')
- except (AttributeError, ValueError):
- pass
- if module is not None:
- result.__module__ = module
-
- return result
-
-
-########################################################################
-### Counter
-########################################################################
-
-def _count_elements(mapping, iterable):
- 'Tally elements from the iterable.'
- mapping_get = mapping.get
- for elem in iterable:
- mapping[elem] = mapping_get(elem, 0) + 1
-
-try: # Load C helper function if available
- from _collections import _count_elements
-except ImportError:
- pass
-
-class Counter(dict):
- '''Dict subclass for counting hashable items. Sometimes called a bag
- or multiset. Elements are stored as dictionary keys and their counts
- are stored as dictionary values.
-
- >>> c = Counter('abcdeabcdabcaba') # count elements from a string
-
- >>> c.most_common(3) # three most common elements
- [('a', 5), ('b', 4), ('c', 3)]
- >>> sorted(c) # list all unique elements
- ['a', 'b', 'c', 'd', 'e']
- >>> ''.join(sorted(c.elements())) # list elements with repetitions
- 'aaaaabbbbcccdde'
- >>> sum(c.values()) # total of all counts
- 15
-
- >>> c['a'] # count of letter 'a'
- 5
- >>> for elem in 'shazam': # update counts from an iterable
- ... c[elem] += 1 # by adding 1 to each element's count
- >>> c['a'] # now there are seven 'a'
- 7
- >>> del c['b'] # remove all 'b'
- >>> c['b'] # now there are zero 'b'
- 0
-
- >>> d = Counter('simsalabim') # make another counter
- >>> c.update(d) # add in the second counter
- >>> c['a'] # now there are nine 'a'
- 9
-
- >>> c.clear() # empty the counter
- >>> c
- Counter()
-
- Note: If a count is set to zero or reduced to zero, it will remain
- in the counter until the entry is deleted or the counter is cleared:
-
- >>> c = Counter('aaabbc')
- >>> c['b'] -= 2 # reduce the count of 'b' by two
- >>> c.most_common() # 'b' is still in, but its count is zero
- [('a', 3), ('c', 1), ('b', 0)]
-
- '''
- # References:
- # http://en.wikipedia.org/wiki/Multiset
- # http://www.gnu.org/software/smalltalk/manual-base/html_node/Bag.html
- # http://www.demo2s.com/Tutorial/Cpp/0380__set-multiset/Catalog0380__set-multiset.htm
- # http://code.activestate.com/recipes/259174/
- # Knuth, TAOCP Vol. II section 4.6.3
-
- def __init__(*args, **kwds):
- '''Create a new, empty Counter object. And if given, count elements
- from an input iterable. Or, initialize the count from another mapping
- of elements to their counts.
-
- >>> c = Counter() # a new, empty counter
- >>> c = Counter('gallahad') # a new counter from an iterable
- >>> c = Counter({'a': 4, 'b': 2}) # a new counter from a mapping
- >>> c = Counter(a=4, b=2) # a new counter from keyword args
-
- '''
- if not args:
- raise TypeError("descriptor '__init__' of 'Counter' object "
- "needs an argument")
- self, *args = args
- if len(args) > 1:
- raise TypeError('expected at most 1 arguments, got %d' % len(args))
- super(Counter, self).__init__()
- self.update(*args, **kwds)
-
- def __missing__(self, key):
- 'The count of elements not in the Counter is zero.'
- # Needed so that self[missing_item] does not raise KeyError
- return 0
-
- def most_common(self, n=None):
- '''List the n most common elements and their counts from the most
- common to the least. If n is None, then list all element counts.
-
- >>> Counter('abcdeabcdabcaba').most_common(3)
- [('a', 5), ('b', 4), ('c', 3)]
-
- '''
- # Emulate Bag.sortedByCount from Smalltalk
- if n is None:
- return sorted(self.items(), key=_itemgetter(1), reverse=True)
- return _heapq.nlargest(n, self.items(), key=_itemgetter(1))
-
- def elements(self):
- '''Iterator over elements repeating each as many times as its count.
-
- >>> c = Counter('ABCABC')
- >>> sorted(c.elements())
- ['A', 'A', 'B', 'B', 'C', 'C']
-
- # Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1
- >>> prime_factors = Counter({2: 2, 3: 3, 17: 1})
- >>> product = 1
- >>> for factor in prime_factors.elements(): # loop over factors
- ... product *= factor # and multiply them
- >>> product
- 1836
-
- Note, if an element's count has been set to zero or is a negative
- number, elements() will ignore it.
-
- '''
- # Emulate Bag.do from Smalltalk and Multiset.begin from C++.
- return _chain.from_iterable(_starmap(_repeat, self.items()))
-
- # Override dict methods where necessary
-
- @classmethod
- def fromkeys(cls, iterable, v=None):
- # There is no equivalent method for counters because setting v=1
- # means that no element can have a count greater than one.
- raise NotImplementedError(
- 'Counter.fromkeys() is undefined. Use Counter(iterable) instead.')
-
- def update(*args, **kwds):
- '''Like dict.update() but add counts instead of replacing them.
-
- Source can be an iterable, a dictionary, or another Counter instance.
-
- >>> c = Counter('which')
- >>> c.update('witch') # add elements from another iterable
- >>> d = Counter('watch')
- >>> c.update(d) # add elements from another counter
- >>> c['h'] # four 'h' in which, witch, and watch
- 4
-
- '''
- # The regular dict.update() operation makes no sense here because the
- # replace behavior results in the some of original untouched counts
- # being mixed-in with all of the other counts for a mismash that
- # doesn't have a straight-forward interpretation in most counting
- # contexts. Instead, we implement straight-addition. Both the inputs
- # and outputs are allowed to contain zero and negative counts.
-
- if not args:
- raise TypeError("descriptor 'update' of 'Counter' object "
- "needs an argument")
- self, *args = args
- if len(args) > 1:
- raise TypeError('expected at most 1 arguments, got %d' % len(args))
- iterable = args[0] if args else None
- if iterable is not None:
- if isinstance(iterable, _collections_abc.Mapping):
- if self:
- self_get = self.get
- for elem, count in iterable.items():
- self[elem] = count + self_get(elem, 0)
- else:
- super(Counter, self).update(iterable) # fast path when counter is empty
- else:
- _count_elements(self, iterable)
- if kwds:
- self.update(kwds)
-
- def subtract(*args, **kwds):
- '''Like dict.update() but subtracts counts instead of replacing them.
- Counts can be reduced below zero. Both the inputs and outputs are
- allowed to contain zero and negative counts.
-
- Source can be an iterable, a dictionary, or another Counter instance.
-
- >>> c = Counter('which')
- >>> c.subtract('witch') # subtract elements from another iterable
- >>> c.subtract(Counter('watch')) # subtract elements from another counter
- >>> c['h'] # 2 in which, minus 1 in witch, minus 1 in watch
- 0
- >>> c['w'] # 1 in which, minus 1 in witch, minus 1 in watch
- -1
-
- '''
- if not args:
- raise TypeError("descriptor 'subtract' of 'Counter' object "
- "needs an argument")
- self, *args = args
- if len(args) > 1:
- raise TypeError('expected at most 1 arguments, got %d' % len(args))
- iterable = args[0] if args else None
- if iterable is not None:
- self_get = self.get
- if isinstance(iterable, _collections_abc.Mapping):
- for elem, count in iterable.items():
- self[elem] = self_get(elem, 0) - count
- else:
- for elem in iterable:
- self[elem] = self_get(elem, 0) - 1
- if kwds:
- self.subtract(kwds)
-
- def copy(self):
- 'Return a shallow copy.'
- return self.__class__(self)
-
- def __reduce__(self):
- return self.__class__, (dict(self),)
-
- def __delitem__(self, elem):
- 'Like dict.__delitem__() but does not raise KeyError for missing values.'
- if elem in self:
- super().__delitem__(elem)
-
- def __repr__(self):
- if not self:
- return '%s()' % self.__class__.__name__
- try:
- items = ', '.join(map('%r: %r'.__mod__, self.most_common()))
- return '%s({%s})' % (self.__class__.__name__, items)
- except TypeError:
- # handle case where values are not orderable
- return '{0}({1!r})'.format(self.__class__.__name__, dict(self))
-
- # Multiset-style mathematical operations discussed in:
- # Knuth TAOCP Volume II section 4.6.3 exercise 19
- # and at http://en.wikipedia.org/wiki/Multiset
- #
- # Outputs guaranteed to only include positive counts.
- #
- # To strip negative and zero counts, add-in an empty counter:
- # c += Counter()
-
- def __add__(self, other):
- '''Add counts from two counters.
-
- >>> Counter('abbb') + Counter('bcc')
- Counter({'b': 4, 'c': 2, 'a': 1})
-
- '''
- if not isinstance(other, Counter):
- return NotImplemented
- result = Counter()
- for elem, count in self.items():
- newcount = count + other[elem]
- if newcount > 0:
- result[elem] = newcount
- for elem, count in other.items():
- if elem not in self and count > 0:
- result[elem] = count
- return result
-
- def __sub__(self, other):
- ''' Subtract count, but keep only results with positive counts.
-
- >>> Counter('abbbc') - Counter('bccd')
- Counter({'b': 2, 'a': 1})
-
- '''
- if not isinstance(other, Counter):
- return NotImplemented
- result = Counter()
- for elem, count in self.items():
- newcount = count - other[elem]
- if newcount > 0:
- result[elem] = newcount
- for elem, count in other.items():
- if elem not in self and count < 0:
- result[elem] = 0 - count
- return result
-
- def __or__(self, other):
- '''Union is the maximum of value in either of the input counters.
-
- >>> Counter('abbb') | Counter('bcc')
- Counter({'b': 3, 'c': 2, 'a': 1})
-
- '''
- if not isinstance(other, Counter):
- return NotImplemented
- result = Counter()
- for elem, count in self.items():
- other_count = other[elem]
- newcount = other_count if count < other_count else count
- if newcount > 0:
- result[elem] = newcount
- for elem, count in other.items():
- if elem not in self and count > 0:
- result[elem] = count
- return result
-
- def __and__(self, other):
- ''' Intersection is the minimum of corresponding counts.
-
- >>> Counter('abbb') & Counter('bcc')
- Counter({'b': 1})
-
- '''
- if not isinstance(other, Counter):
- return NotImplemented
- result = Counter()
- for elem, count in self.items():
- other_count = other[elem]
- newcount = count if count < other_count else other_count
- if newcount > 0:
- result[elem] = newcount
- return result
-
- def __pos__(self):
- 'Adds an empty counter, effectively stripping negative and zero counts'
- result = Counter()
- for elem, count in self.items():
- if count > 0:
- result[elem] = count
- return result
-
- def __neg__(self):
- '''Subtracts from an empty counter. Strips positive and zero counts,
- and flips the sign on negative counts.
-
- '''
- result = Counter()
- for elem, count in self.items():
- if count < 0:
- result[elem] = 0 - count
- return result
-
- def _keep_positive(self):
- '''Internal method to strip elements with a negative or zero count'''
- nonpositive = [elem for elem, count in self.items() if not count > 0]
- for elem in nonpositive:
- del self[elem]
- return self
-
- def __iadd__(self, other):
- '''Inplace add from another counter, keeping only positive counts.
-
- >>> c = Counter('abbb')
- >>> c += Counter('bcc')
- >>> c
- Counter({'b': 4, 'c': 2, 'a': 1})
-
- '''
- for elem, count in other.items():
- self[elem] += count
- return self._keep_positive()
-
- def __isub__(self, other):
- '''Inplace subtract counter, but keep only results with positive counts.
-
- >>> c = Counter('abbbc')
- >>> c -= Counter('bccd')
- >>> c
- Counter({'b': 2, 'a': 1})
-
- '''
- for elem, count in other.items():
- self[elem] -= count
- return self._keep_positive()
-
- def __ior__(self, other):
- '''Inplace union is the maximum of value from either counter.
-
- >>> c = Counter('abbb')
- >>> c |= Counter('bcc')
- >>> c
- Counter({'b': 3, 'c': 2, 'a': 1})
-
- '''
- for elem, other_count in other.items():
- count = self[elem]
- if other_count > count:
- self[elem] = other_count
- return self._keep_positive()
-
- def __iand__(self, other):
- '''Inplace intersection is the minimum of corresponding counts.
-
- >>> c = Counter('abbb')
- >>> c &= Counter('bcc')
- >>> c
- Counter({'b': 1})
-
- '''
- for elem, count in self.items():
- other_count = other[elem]
- if other_count < count:
- self[elem] = other_count
- return self._keep_positive()
-
-
-########################################################################
-### ChainMap
-########################################################################
-
-class ChainMap(_collections_abc.MutableMapping):
- ''' A ChainMap groups multiple dicts (or other mappings) together
- to create a single, updateable view.
-
- The underlying mappings are stored in a list. That list is public and can
- be accessed or updated using the *maps* attribute. There is no other
- state.
-
- Lookups search the underlying mappings successively until a key is found.
- In contrast, writes, updates, and deletions only operate on the first
- mapping.
-
- '''
-
- def __init__(self, *maps):
- '''Initialize a ChainMap by setting *maps* to the given mappings.
- If no mappings are provided, a single empty dictionary is used.
-
- '''
- self.maps = list(maps) or [{}] # always at least one map
-
- def __missing__(self, key):
- raise KeyError(key)
-
- def __getitem__(self, key):
- for mapping in self.maps:
- try:
- return mapping[key] # can't use 'key in mapping' with defaultdict
- except KeyError:
- pass
- return self.__missing__(key) # support subclasses that define __missing__
-
- def get(self, key, default=None):
- return self[key] if key in self else default
-
- def __len__(self):
- return len(set().union(*self.maps)) # reuses stored hash values if possible
-
- def __iter__(self):
- d = {}
- for mapping in reversed(self.maps):
- d.update(mapping) # reuses stored hash values if possible
- return iter(d)
-
- def __contains__(self, key):
- return any(key in m for m in self.maps)
-
- def __bool__(self):
- return any(self.maps)
-
- @_recursive_repr()
- def __repr__(self):
- return '{0.__class__.__name__}({1})'.format(
- self, ', '.join(map(repr, self.maps)))
-
- @classmethod
- def fromkeys(cls, iterable, *args):
- 'Create a ChainMap with a single dict created from the iterable.'
- return cls(dict.fromkeys(iterable, *args))
-
- def copy(self):
- 'New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]'
- return self.__class__(self.maps[0].copy(), *self.maps[1:])
-
- __copy__ = copy
-
- def new_child(self, m=None): # like Django's Context.push()
- '''New ChainMap with a new map followed by all previous maps.
- If no map is provided, an empty dict is used.
- '''
- if m is None:
- m = {}
- return self.__class__(m, *self.maps)
-
- @property
- def parents(self): # like Django's Context.pop()
- 'New ChainMap from maps[1:].'
- return self.__class__(*self.maps[1:])
-
- def __setitem__(self, key, value):
- self.maps[0][key] = value
-
- def __delitem__(self, key):
- try:
- del self.maps[0][key]
- except KeyError:
- raise KeyError('Key not found in the first mapping: {!r}'.format(key))
-
- def popitem(self):
- 'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.'
- try:
- return self.maps[0].popitem()
- except KeyError:
- raise KeyError('No keys found in the first mapping.')
-
- def pop(self, key, *args):
- 'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].'
- try:
- return self.maps[0].pop(key, *args)
- except KeyError:
- raise KeyError('Key not found in the first mapping: {!r}'.format(key))
-
- def clear(self):
- 'Clear maps[0], leaving maps[1:] intact.'
- self.maps[0].clear()
-
-
-################################################################################
-### UserDict
-################################################################################
-
-class UserDict(_collections_abc.MutableMapping):
-
- # Start by filling-out the abstract methods
- def __init__(*args, **kwargs):
- if not args:
- raise TypeError("descriptor '__init__' of 'UserDict' object "
- "needs an argument")
- self, *args = args
- if len(args) > 1:
- raise TypeError('expected at most 1 arguments, got %d' % len(args))
- if args:
- dict = args[0]
- elif 'dict' in kwargs:
- dict = kwargs.pop('dict')
- import warnings
- warnings.warn("Passing 'dict' as keyword argument is deprecated",
- DeprecationWarning, stacklevel=2)
- else:
- dict = None
- self.data = {}
- if dict is not None:
- self.update(dict)
- if len(kwargs):
- self.update(kwargs)
- def __len__(self): return len(self.data)
- def __getitem__(self, key):
- if key in self.data:
- return self.data[key]
- if hasattr(self.__class__, "__missing__"):
- return self.__class__.__missing__(self, key)
- raise KeyError(key)
- def __setitem__(self, key, item): self.data[key] = item
- def __delitem__(self, key): del self.data[key]
- def __iter__(self):
- return iter(self.data)
-
- # Modify __contains__ to work correctly when __missing__ is present
- def __contains__(self, key):
- return key in self.data
-
- # Now, add the methods in dicts but not in MutableMapping
- def __repr__(self): return repr(self.data)
- def __copy__(self):
- inst = self.__class__.__new__(self.__class__)
- inst.__dict__.update(self.__dict__)
- # Create a copy and avoid triggering descriptors
- inst.__dict__["data"] = self.__dict__["data"].copy()
- return inst
-
- def copy(self):
- if self.__class__ is UserDict:
- return UserDict(self.data.copy())
- import copy
- data = self.data
- try:
- self.data = {}
- c = copy.copy(self)
- finally:
- self.data = data
- c.update(self)
- return c
-
- @classmethod
- def fromkeys(cls, iterable, value=None):
- d = cls()
- for key in iterable:
- d[key] = value
- return d
-
-
-
-################################################################################
-### UserList
-################################################################################
-
-class UserList(_collections_abc.MutableSequence):
- """A more or less complete user-defined wrapper around list objects."""
- def __init__(self, initlist=None):
- self.data = []
- if initlist is not None:
- # XXX should this accept an arbitrary sequence?
- if type(initlist) == type(self.data):
- self.data[:] = initlist
- elif isinstance(initlist, UserList):
- self.data[:] = initlist.data[:]
- else:
- self.data = list(initlist)
- def __repr__(self): return repr(self.data)
- def __lt__(self, other): return self.data < self.__cast(other)
- def __le__(self, other): return self.data <= self.__cast(other)
- def __eq__(self, other): return self.data == self.__cast(other)
- def __gt__(self, other): return self.data > self.__cast(other)
- def __ge__(self, other): return self.data >= self.__cast(other)
- def __cast(self, other):
- return other.data if isinstance(other, UserList) else other
- def __contains__(self, item): return item in self.data
- def __len__(self): return len(self.data)
- def __getitem__(self, i):
- if isinstance(i, slice):
- return self.__class__(self.data[i])
- else:
- return self.data[i]
- def __setitem__(self, i, item): self.data[i] = item
- def __delitem__(self, i): del self.data[i]
- def __add__(self, other):
- if isinstance(other, UserList):
- return self.__class__(self.data + other.data)
- elif isinstance(other, type(self.data)):
- return self.__class__(self.data + other)
- return self.__class__(self.data + list(other))
- def __radd__(self, other):
- if isinstance(other, UserList):
- return self.__class__(other.data + self.data)
- elif isinstance(other, type(self.data)):
- return self.__class__(other + self.data)
- return self.__class__(list(other) + self.data)
- def __iadd__(self, other):
- if isinstance(other, UserList):
- self.data += other.data
- elif isinstance(other, type(self.data)):
- self.data += other
- else:
- self.data += list(other)
- return self
- def __mul__(self, n):
- return self.__class__(self.data*n)
- __rmul__ = __mul__
- def __imul__(self, n):
- self.data *= n
- return self
- def __copy__(self):
- inst = self.__class__.__new__(self.__class__)
- inst.__dict__.update(self.__dict__)
- # Create a copy and avoid triggering descriptors
- inst.__dict__["data"] = self.__dict__["data"][:]
- return inst
- def append(self, item): self.data.append(item)
- def insert(self, i, item): self.data.insert(i, item)
- def pop(self, i=-1): return self.data.pop(i)
- def remove(self, item): self.data.remove(item)
- def clear(self): self.data.clear()
- def copy(self): return self.__class__(self)
- def count(self, item): return self.data.count(item)
- def index(self, item, *args): return self.data.index(item, *args)
- def reverse(self): self.data.reverse()
- def sort(self, *args, **kwds): self.data.sort(*args, **kwds)
- def extend(self, other):
- if isinstance(other, UserList):
- self.data.extend(other.data)
- else:
- self.data.extend(other)
-
-
-
-################################################################################
-### UserString
-################################################################################
-
-class UserString(_collections_abc.Sequence):
- def __init__(self, seq):
- if isinstance(seq, str):
- self.data = seq
- elif isinstance(seq, UserString):
- self.data = seq.data[:]
- else:
- self.data = str(seq)
- def __str__(self): return str(self.data)
- def __repr__(self): return repr(self.data)
- def __int__(self): return int(self.data)
- def __float__(self): return float(self.data)
- def __complex__(self): return complex(self.data)
- def __hash__(self): return hash(self.data)
- def __getnewargs__(self):
- return (self.data[:],)
-
- def __eq__(self, string):
- if isinstance(string, UserString):
- return self.data == string.data
- return self.data == string
- def __lt__(self, string):
- if isinstance(string, UserString):
- return self.data < string.data
- return self.data < string
- def __le__(self, string):
- if isinstance(string, UserString):
- return self.data <= string.data
- return self.data <= string
- def __gt__(self, string):
- if isinstance(string, UserString):
- return self.data > string.data
- return self.data > string
- def __ge__(self, string):
- if isinstance(string, UserString):
- return self.data >= string.data
- return self.data >= string
-
- def __contains__(self, char):
- if isinstance(char, UserString):
- char = char.data
- return char in self.data
-
- def __len__(self): return len(self.data)
- def __getitem__(self, index): return self.__class__(self.data[index])
- def __add__(self, other):
- if isinstance(other, UserString):
- return self.__class__(self.data + other.data)
- elif isinstance(other, str):
- return self.__class__(self.data + other)
- return self.__class__(self.data + str(other))
- def __radd__(self, other):
- if isinstance(other, str):
- return self.__class__(other + self.data)
- return self.__class__(str(other) + self.data)
- def __mul__(self, n):
- return self.__class__(self.data*n)
- __rmul__ = __mul__
- def __mod__(self, args):
- return self.__class__(self.data % args)
- def __rmod__(self, format):
- return self.__class__(format % args)
-
- # the following methods are defined in alphabetical order:
- def capitalize(self): return self.__class__(self.data.capitalize())
- def casefold(self):
- return self.__class__(self.data.casefold())
- def center(self, width, *args):
- return self.__class__(self.data.center(width, *args))
- def count(self, sub, start=0, end=_sys.maxsize):
- if isinstance(sub, UserString):
- sub = sub.data
- return self.data.count(sub, start, end)
- def encode(self, encoding=None, errors=None): # XXX improve this?
- if encoding:
- if errors:
- return self.__class__(self.data.encode(encoding, errors))
- return self.__class__(self.data.encode(encoding))
- return self.__class__(self.data.encode())
- def endswith(self, suffix, start=0, end=_sys.maxsize):
- return self.data.endswith(suffix, start, end)
- def expandtabs(self, tabsize=8):
- return self.__class__(self.data.expandtabs(tabsize))
- def find(self, sub, start=0, end=_sys.maxsize):
- if isinstance(sub, UserString):
- sub = sub.data
- return self.data.find(sub, start, end)
- def format(self, *args, **kwds):
- return self.data.format(*args, **kwds)
- def format_map(self, mapping):
- return self.data.format_map(mapping)
- def index(self, sub, start=0, end=_sys.maxsize):
- return self.data.index(sub, start, end)
- def isalpha(self): return self.data.isalpha()
- def isalnum(self): return self.data.isalnum()
- def isascii(self): return self.data.isascii()
- def isdecimal(self): return self.data.isdecimal()
- def isdigit(self): return self.data.isdigit()
- def isidentifier(self): return self.data.isidentifier()
- def islower(self): return self.data.islower()
- def isnumeric(self): return self.data.isnumeric()
- def isprintable(self): return self.data.isprintable()
- def isspace(self): return self.data.isspace()
- def istitle(self): return self.data.istitle()
- def isupper(self): return self.data.isupper()
- def join(self, seq): return self.data.join(seq)
- def ljust(self, width, *args):
- return self.__class__(self.data.ljust(width, *args))
- def lower(self): return self.__class__(self.data.lower())
- def lstrip(self, chars=None): return self.__class__(self.data.lstrip(chars))
- maketrans = str.maketrans
- def partition(self, sep):
- return self.data.partition(sep)
- def replace(self, old, new, maxsplit=-1):
- if isinstance(old, UserString):
- old = old.data
- if isinstance(new, UserString):
- new = new.data
- return self.__class__(self.data.replace(old, new, maxsplit))
- def rfind(self, sub, start=0, end=_sys.maxsize):
- if isinstance(sub, UserString):
- sub = sub.data
- return self.data.rfind(sub, start, end)
- def rindex(self, sub, start=0, end=_sys.maxsize):
- return self.data.rindex(sub, start, end)
- def rjust(self, width, *args):
- return self.__class__(self.data.rjust(width, *args))
- def rpartition(self, sep):
- return self.data.rpartition(sep)
- def rstrip(self, chars=None):
- return self.__class__(self.data.rstrip(chars))
- def split(self, sep=None, maxsplit=-1):
- return self.data.split(sep, maxsplit)
- def rsplit(self, sep=None, maxsplit=-1):
- return self.data.rsplit(sep, maxsplit)
- def splitlines(self, keepends=False): return self.data.splitlines(keepends)
- def startswith(self, prefix, start=0, end=_sys.maxsize):
- return self.data.startswith(prefix, start, end)
- def strip(self, chars=None): return self.__class__(self.data.strip(chars))
- def swapcase(self): return self.__class__(self.data.swapcase())
- def title(self): return self.__class__(self.data.title())
- def translate(self, *args):
- return self.__class__(self.data.translate(*args))
- def upper(self): return self.__class__(self.data.upper())
- def zfill(self, width): return self.__class__(self.data.zfill(width))
diff --git a/EasyTrans/Lib/collections/__pycache__/__init__.cpython-37.pyc b/EasyTrans/Lib/collections/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index 084b8a94..00000000
Binary files a/EasyTrans/Lib/collections/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/collections/__pycache__/abc.cpython-37.pyc b/EasyTrans/Lib/collections/__pycache__/abc.cpython-37.pyc
deleted file mode 100644
index 20075949..00000000
Binary files a/EasyTrans/Lib/collections/__pycache__/abc.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/collections/abc.py b/EasyTrans/Lib/collections/abc.py
deleted file mode 100644
index 891600d1..00000000
--- a/EasyTrans/Lib/collections/abc.py
+++ /dev/null
@@ -1,2 +0,0 @@
-from _collections_abc import *
-from _collections_abc import __all__
diff --git a/EasyTrans/Lib/copy.py b/EasyTrans/Lib/copy.py
deleted file mode 100644
index f86040a3..00000000
--- a/EasyTrans/Lib/copy.py
+++ /dev/null
@@ -1,313 +0,0 @@
-"""Generic (shallow and deep) copying operations.
-
-Interface summary:
-
- import copy
-
- x = copy.copy(y) # make a shallow copy of y
- x = copy.deepcopy(y) # make a deep copy of y
-
-For module specific errors, copy.Error is raised.
-
-The difference between shallow and deep copying is only relevant for
-compound objects (objects that contain other objects, like lists or
-class instances).
-
-- A shallow copy constructs a new compound object and then (to the
- extent possible) inserts *the same objects* into it that the
- original contains.
-
-- A deep copy constructs a new compound object and then, recursively,
- inserts *copies* into it of the objects found in the original.
-
-Two problems often exist with deep copy operations that don't exist
-with shallow copy operations:
-
- a) recursive objects (compound objects that, directly or indirectly,
- contain a reference to themselves) may cause a recursive loop
-
- b) because deep copy copies *everything* it may copy too much, e.g.
- administrative data structures that should be shared even between
- copies
-
-Python's deep copy operation avoids these problems by:
-
- a) keeping a table of objects already copied during the current
- copying pass
-
- b) letting user-defined classes override the copying operation or the
- set of components copied
-
-This version does not copy types like module, class, function, method,
-nor stack trace, stack frame, nor file, socket, window, nor array, nor
-any similar types.
-
-Classes can use the same interfaces to control copying that they use
-to control pickling: they can define methods called __getinitargs__(),
-__getstate__() and __setstate__(). See the documentation for module
-"pickle" for information on these methods.
-"""
-
-import types
-import weakref
-from copyreg import dispatch_table
-
-class Error(Exception):
- pass
-error = Error # backward compatibility
-
-try:
- from org.python.core import PyStringMap
-except ImportError:
- PyStringMap = None
-
-__all__ = ["Error", "copy", "deepcopy"]
-
-def copy(x):
- """Shallow copy operation on arbitrary Python objects.
-
- See the module's __doc__ string for more info.
- """
-
- cls = type(x)
-
- copier = _copy_dispatch.get(cls)
- if copier:
- return copier(x)
-
- try:
- issc = issubclass(cls, type)
- except TypeError: # cls is not a class
- issc = False
- if issc:
- # treat it as a regular class:
- return _copy_immutable(x)
-
- copier = getattr(cls, "__copy__", None)
- if copier:
- return copier(x)
-
- reductor = dispatch_table.get(cls)
- if reductor:
- rv = reductor(x)
- else:
- reductor = getattr(x, "__reduce_ex__", None)
- if reductor:
- rv = reductor(4)
- else:
- reductor = getattr(x, "__reduce__", None)
- if reductor:
- rv = reductor()
- else:
- raise Error("un(shallow)copyable object of type %s" % cls)
-
- if isinstance(rv, str):
- return x
- return _reconstruct(x, None, *rv)
-
-
-_copy_dispatch = d = {}
-
-def _copy_immutable(x):
- return x
-for t in (type(None), int, float, bool, complex, str, tuple,
- bytes, frozenset, type, range, slice,
- types.BuiltinFunctionType, type(Ellipsis), type(NotImplemented),
- types.FunctionType, weakref.ref):
- d[t] = _copy_immutable
-t = getattr(types, "CodeType", None)
-if t is not None:
- d[t] = _copy_immutable
-
-d[list] = list.copy
-d[dict] = dict.copy
-d[set] = set.copy
-d[bytearray] = bytearray.copy
-
-if PyStringMap is not None:
- d[PyStringMap] = PyStringMap.copy
-
-del d, t
-
-def deepcopy(x, memo=None, _nil=[]):
- """Deep copy operation on arbitrary Python objects.
-
- See the module's __doc__ string for more info.
- """
-
- if memo is None:
- memo = {}
-
- d = id(x)
- y = memo.get(d, _nil)
- if y is not _nil:
- return y
-
- cls = type(x)
-
- copier = _deepcopy_dispatch.get(cls)
- if copier:
- y = copier(x, memo)
- else:
- try:
- issc = issubclass(cls, type)
- except TypeError: # cls is not a class (old Boost; see SF #502085)
- issc = 0
- if issc:
- y = _deepcopy_atomic(x, memo)
- else:
- copier = getattr(x, "__deepcopy__", None)
- if copier:
- y = copier(memo)
- else:
- reductor = dispatch_table.get(cls)
- if reductor:
- rv = reductor(x)
- else:
- reductor = getattr(x, "__reduce_ex__", None)
- if reductor:
- rv = reductor(4)
- else:
- reductor = getattr(x, "__reduce__", None)
- if reductor:
- rv = reductor()
- else:
- raise Error(
- "un(deep)copyable object of type %s" % cls)
- if isinstance(rv, str):
- y = x
- else:
- y = _reconstruct(x, memo, *rv)
-
- # If is its own copy, don't memoize.
- if y is not x:
- memo[d] = y
- _keep_alive(x, memo) # Make sure x lives at least as long as d
- return y
-
-_deepcopy_dispatch = d = {}
-
-def _deepcopy_atomic(x, memo):
- return x
-d[type(None)] = _deepcopy_atomic
-d[type(Ellipsis)] = _deepcopy_atomic
-d[type(NotImplemented)] = _deepcopy_atomic
-d[int] = _deepcopy_atomic
-d[float] = _deepcopy_atomic
-d[bool] = _deepcopy_atomic
-d[complex] = _deepcopy_atomic
-d[bytes] = _deepcopy_atomic
-d[str] = _deepcopy_atomic
-try:
- d[types.CodeType] = _deepcopy_atomic
-except AttributeError:
- pass
-d[type] = _deepcopy_atomic
-d[types.BuiltinFunctionType] = _deepcopy_atomic
-d[types.FunctionType] = _deepcopy_atomic
-d[weakref.ref] = _deepcopy_atomic
-
-def _deepcopy_list(x, memo, deepcopy=deepcopy):
- y = []
- memo[id(x)] = y
- append = y.append
- for a in x:
- append(deepcopy(a, memo))
- return y
-d[list] = _deepcopy_list
-
-def _deepcopy_tuple(x, memo, deepcopy=deepcopy):
- y = [deepcopy(a, memo) for a in x]
- # We're not going to put the tuple in the memo, but it's still important we
- # check for it, in case the tuple contains recursive mutable structures.
- try:
- return memo[id(x)]
- except KeyError:
- pass
- for k, j in zip(x, y):
- if k is not j:
- y = tuple(y)
- break
- else:
- y = x
- return y
-d[tuple] = _deepcopy_tuple
-
-def _deepcopy_dict(x, memo, deepcopy=deepcopy):
- y = {}
- memo[id(x)] = y
- for key, value in x.items():
- y[deepcopy(key, memo)] = deepcopy(value, memo)
- return y
-d[dict] = _deepcopy_dict
-if PyStringMap is not None:
- d[PyStringMap] = _deepcopy_dict
-
-def _deepcopy_method(x, memo): # Copy instance methods
- return type(x)(x.__func__, deepcopy(x.__self__, memo))
-d[types.MethodType] = _deepcopy_method
-
-del d
-
-def _keep_alive(x, memo):
- """Keeps a reference to the object x in the memo.
-
- Because we remember objects by their id, we have
- to assure that possibly temporary objects are kept
- alive by referencing them.
- We store a reference at the id of the memo, which should
- normally not be used unless someone tries to deepcopy
- the memo itself...
- """
- try:
- memo[id(memo)].append(x)
- except KeyError:
- # aha, this is the first one :-)
- memo[id(memo)]=[x]
-
-def _reconstruct(x, memo, func, args,
- state=None, listiter=None, dictiter=None,
- deepcopy=deepcopy):
- deep = memo is not None
- if deep and args:
- args = (deepcopy(arg, memo) for arg in args)
- y = func(*args)
- if deep:
- memo[id(x)] = y
-
- if state is not None:
- if deep:
- state = deepcopy(state, memo)
- if hasattr(y, '__setstate__'):
- y.__setstate__(state)
- else:
- if isinstance(state, tuple) and len(state) == 2:
- state, slotstate = state
- else:
- slotstate = None
- if state is not None:
- y.__dict__.update(state)
- if slotstate is not None:
- for key, value in slotstate.items():
- setattr(y, key, value)
-
- if listiter is not None:
- if deep:
- for item in listiter:
- item = deepcopy(item, memo)
- y.append(item)
- else:
- for item in listiter:
- y.append(item)
- if dictiter is not None:
- if deep:
- for key, value in dictiter:
- key = deepcopy(key, memo)
- value = deepcopy(value, memo)
- y[key] = value
- else:
- for key, value in dictiter:
- y[key] = value
- return y
-
-del types, weakref, PyStringMap
diff --git a/EasyTrans/Lib/copyreg.py b/EasyTrans/Lib/copyreg.py
deleted file mode 100644
index bbe1af4e..00000000
--- a/EasyTrans/Lib/copyreg.py
+++ /dev/null
@@ -1,206 +0,0 @@
-"""Helper to provide extensibility for pickle.
-
-This is only useful to add pickle support for extension types defined in
-C, not for instances of user-defined classes.
-"""
-
-__all__ = ["pickle", "constructor",
- "add_extension", "remove_extension", "clear_extension_cache"]
-
-dispatch_table = {}
-
-def pickle(ob_type, pickle_function, constructor_ob=None):
- if not callable(pickle_function):
- raise TypeError("reduction functions must be callable")
- dispatch_table[ob_type] = pickle_function
-
- # The constructor_ob function is a vestige of safe for unpickling.
- # There is no reason for the caller to pass it anymore.
- if constructor_ob is not None:
- constructor(constructor_ob)
-
-def constructor(object):
- if not callable(object):
- raise TypeError("constructors must be callable")
-
-# Example: provide pickling support for complex numbers.
-
-try:
- complex
-except NameError:
- pass
-else:
-
- def pickle_complex(c):
- return complex, (c.real, c.imag)
-
- pickle(complex, pickle_complex, complex)
-
-# Support for pickling new-style objects
-
-def _reconstructor(cls, base, state):
- if base is object:
- obj = object.__new__(cls)
- else:
- obj = base.__new__(cls, state)
- if base.__init__ != object.__init__:
- base.__init__(obj, state)
- return obj
-
-_HEAPTYPE = 1<<9
-
-# Python code for object.__reduce_ex__ for protocols 0 and 1
-
-def _reduce_ex(self, proto):
- assert proto < 2
- for base in self.__class__.__mro__:
- if hasattr(base, '__flags__') and not base.__flags__ & _HEAPTYPE:
- break
- else:
- base = object # not really reachable
- if base is object:
- state = None
- else:
- if base is self.__class__:
- raise TypeError("can't pickle %s objects" % base.__name__)
- state = base(self)
- args = (self.__class__, base, state)
- try:
- getstate = self.__getstate__
- except AttributeError:
- if getattr(self, "__slots__", None):
- raise TypeError("a class that defines __slots__ without "
- "defining __getstate__ cannot be pickled") from None
- try:
- dict = self.__dict__
- except AttributeError:
- dict = None
- else:
- dict = getstate()
- if dict:
- return _reconstructor, args, dict
- else:
- return _reconstructor, args
-
-# Helper for __reduce_ex__ protocol 2
-
-def __newobj__(cls, *args):
- return cls.__new__(cls, *args)
-
-def __newobj_ex__(cls, args, kwargs):
- """Used by pickle protocol 4, instead of __newobj__ to allow classes with
- keyword-only arguments to be pickled correctly.
- """
- return cls.__new__(cls, *args, **kwargs)
-
-def _slotnames(cls):
- """Return a list of slot names for a given class.
-
- This needs to find slots defined by the class and its bases, so we
- can't simply return the __slots__ attribute. We must walk down
- the Method Resolution Order and concatenate the __slots__ of each
- class found there. (This assumes classes don't modify their
- __slots__ attribute to misrepresent their slots after the class is
- defined.)
- """
-
- # Get the value from a cache in the class if possible
- names = cls.__dict__.get("__slotnames__")
- if names is not None:
- return names
-
- # Not cached -- calculate the value
- names = []
- if not hasattr(cls, "__slots__"):
- # This class has no slots
- pass
- else:
- # Slots found -- gather slot names from all base classes
- for c in cls.__mro__:
- if "__slots__" in c.__dict__:
- slots = c.__dict__['__slots__']
- # if class has a single slot, it can be given as a string
- if isinstance(slots, str):
- slots = (slots,)
- for name in slots:
- # special descriptors
- if name in ("__dict__", "__weakref__"):
- continue
- # mangled names
- elif name.startswith('__') and not name.endswith('__'):
- stripped = c.__name__.lstrip('_')
- if stripped:
- names.append('_%s%s' % (stripped, name))
- else:
- names.append(name)
- else:
- names.append(name)
-
- # Cache the outcome in the class if at all possible
- try:
- cls.__slotnames__ = names
- except:
- pass # But don't die if we can't
-
- return names
-
-# A registry of extension codes. This is an ad-hoc compression
-# mechanism. Whenever a global reference to , is about
-# to be pickled, the (, ) tuple is looked up here to see
-# if it is a registered extension code for it. Extension codes are
-# universal, so that the meaning of a pickle does not depend on
-# context. (There are also some codes reserved for local use that
-# don't have this restriction.) Codes are positive ints; 0 is
-# reserved.
-
-_extension_registry = {} # key -> code
-_inverted_registry = {} # code -> key
-_extension_cache = {} # code -> object
-# Don't ever rebind those names: pickling grabs a reference to them when
-# it's initialized, and won't see a rebinding.
-
-def add_extension(module, name, code):
- """Register an extension code."""
- code = int(code)
- if not 1 <= code <= 0x7fffffff:
- raise ValueError("code out of range")
- key = (module, name)
- if (_extension_registry.get(key) == code and
- _inverted_registry.get(code) == key):
- return # Redundant registrations are benign
- if key in _extension_registry:
- raise ValueError("key %s is already registered with code %s" %
- (key, _extension_registry[key]))
- if code in _inverted_registry:
- raise ValueError("code %s is already in use for key %s" %
- (code, _inverted_registry[code]))
- _extension_registry[key] = code
- _inverted_registry[code] = key
-
-def remove_extension(module, name, code):
- """Unregister an extension code. For testing only."""
- key = (module, name)
- if (_extension_registry.get(key) != code or
- _inverted_registry.get(code) != key):
- raise ValueError("key %s is not registered with code %s" %
- (key, code))
- del _extension_registry[key]
- del _inverted_registry[code]
- if code in _extension_cache:
- del _extension_cache[code]
-
-def clear_extension_cache():
- _extension_cache.clear()
-
-# Standard extension code assignments
-
-# Reserved ranges
-
-# First Last Count Purpose
-# 1 127 127 Reserved for Python standard library
-# 128 191 64 Reserved for Zope
-# 192 239 48 Reserved for 3rd parties
-# 240 255 16 Reserved for private use (will never be assigned)
-# 256 Inf Inf Reserved for future assignment
-
-# Extension codes are assigned by the Python Software Foundation.
diff --git a/EasyTrans/Lib/distutils/__init__.py b/EasyTrans/Lib/distutils/__init__.py
deleted file mode 100644
index b9b0f24f..00000000
--- a/EasyTrans/Lib/distutils/__init__.py
+++ /dev/null
@@ -1,134 +0,0 @@
-import os
-import sys
-import warnings
-
-# opcode is not a virtualenv module, so we can use it to find the stdlib
-# Important! To work on pypy, this must be a module that resides in the
-# lib-python/modified-x.y.z directory
-import opcode
-
-dirname = os.path.dirname
-
-distutils_path = os.path.join(os.path.dirname(opcode.__file__), "distutils")
-if os.path.normpath(distutils_path) == os.path.dirname(os.path.normpath(__file__)):
- warnings.warn("The virtualenv distutils package at %s appears to be in the same location as the system distutils?")
-else:
- __path__.insert(0, distutils_path) # noqa: F821
- if sys.version_info < (3, 4):
- import imp
-
- real_distutils = imp.load_module("_virtualenv_distutils", None, distutils_path, ("", "", imp.PKG_DIRECTORY))
- else:
- import importlib.machinery
-
- distutils_path = os.path.join(distutils_path, "__init__.py")
- loader = importlib.machinery.SourceFileLoader("_virtualenv_distutils", distutils_path)
- if sys.version_info < (3, 5):
- import types
-
- real_distutils = types.ModuleType(loader.name)
- else:
- import importlib.util
-
- spec = importlib.util.spec_from_loader(loader.name, loader)
- real_distutils = importlib.util.module_from_spec(spec)
- loader.exec_module(real_distutils)
-
- # Copy the relevant attributes
- try:
- __revision__ = real_distutils.__revision__
- except AttributeError:
- pass
- __version__ = real_distutils.__version__
-
-from distutils import dist, sysconfig # isort:skip
-
-try:
- basestring
-except NameError:
- basestring = str
-
-# patch build_ext (distutils doesn't know how to get the libs directory
-# path on windows - it hardcodes the paths around the patched sys.prefix)
-
-if sys.platform == "win32":
- from distutils.command.build_ext import build_ext as old_build_ext
-
- class build_ext(old_build_ext):
- def finalize_options(self):
- if self.library_dirs is None:
- self.library_dirs = []
- elif isinstance(self.library_dirs, basestring):
- self.library_dirs = self.library_dirs.split(os.pathsep)
-
- self.library_dirs.insert(0, os.path.join(sys.real_prefix, "Libs"))
- old_build_ext.finalize_options(self)
-
- from distutils.command import build_ext as build_ext_module
-
- build_ext_module.build_ext = build_ext
-
-# distutils.dist patches:
-
-old_find_config_files = dist.Distribution.find_config_files
-
-
-def find_config_files(self):
- found = old_find_config_files(self)
- if os.name == "posix":
- user_filename = ".pydistutils.cfg"
- else:
- user_filename = "pydistutils.cfg"
- user_filename = os.path.join(sys.prefix, user_filename)
- if os.path.isfile(user_filename):
- for item in list(found):
- if item.endswith("pydistutils.cfg"):
- found.remove(item)
- found.append(user_filename)
- return found
-
-
-dist.Distribution.find_config_files = find_config_files
-
-# distutils.sysconfig patches:
-
-old_get_python_inc = sysconfig.get_python_inc
-
-
-def sysconfig_get_python_inc(plat_specific=0, prefix=None):
- if prefix is None:
- prefix = sys.real_prefix
- return old_get_python_inc(plat_specific, prefix)
-
-
-sysconfig_get_python_inc.__doc__ = old_get_python_inc.__doc__
-sysconfig.get_python_inc = sysconfig_get_python_inc
-
-old_get_python_lib = sysconfig.get_python_lib
-
-
-def sysconfig_get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
- if standard_lib and prefix is None:
- prefix = sys.real_prefix
- return old_get_python_lib(plat_specific, standard_lib, prefix)
-
-
-sysconfig_get_python_lib.__doc__ = old_get_python_lib.__doc__
-sysconfig.get_python_lib = sysconfig_get_python_lib
-
-old_get_config_vars = sysconfig.get_config_vars
-
-
-def sysconfig_get_config_vars(*args):
- real_vars = old_get_config_vars(*args)
- if sys.platform == "win32":
- lib_dir = os.path.join(sys.real_prefix, "libs")
- if isinstance(real_vars, dict) and "LIBDIR" not in real_vars:
- real_vars["LIBDIR"] = lib_dir # asked for all
- elif isinstance(real_vars, list) and "LIBDIR" in args:
- real_vars = real_vars + [lib_dir] # asked for list
- return real_vars
-
-
-sysconfig_get_config_vars.__doc__ = old_get_config_vars.__doc__
-sysconfig.get_config_vars = sysconfig_get_config_vars
diff --git a/EasyTrans/Lib/distutils/__pycache__/__init__.cpython-37.pyc b/EasyTrans/Lib/distutils/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index 77bfcde3..00000000
Binary files a/EasyTrans/Lib/distutils/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/distutils/distutils.cfg b/EasyTrans/Lib/distutils/distutils.cfg
deleted file mode 100644
index 1af230ec..00000000
--- a/EasyTrans/Lib/distutils/distutils.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-# This is a config file local to this virtualenv installation
-# You may include options that will be used by all distutils commands,
-# and by easy_install. For instance:
-#
-# [easy_install]
-# find_links = http://mylocalsite
diff --git a/EasyTrans/Lib/encodings/__init__.py b/EasyTrans/Lib/encodings/__init__.py
deleted file mode 100644
index 025b7a8d..00000000
--- a/EasyTrans/Lib/encodings/__init__.py
+++ /dev/null
@@ -1,170 +0,0 @@
-""" Standard "encodings" Package
-
- Standard Python encoding modules are stored in this package
- directory.
-
- Codec modules must have names corresponding to normalized encoding
- names as defined in the normalize_encoding() function below, e.g.
- 'utf-8' must be implemented by the module 'utf_8.py'.
-
- Each codec module must export the following interface:
-
- * getregentry() -> codecs.CodecInfo object
- The getregentry() API must return a CodecInfo object with encoder, decoder,
- incrementalencoder, incrementaldecoder, streamwriter and streamreader
- atttributes which adhere to the Python Codec Interface Standard.
-
- In addition, a module may optionally also define the following
- APIs which are then used by the package's codec search function:
-
- * getaliases() -> sequence of encoding name strings to use as aliases
-
- Alias names returned by getaliases() must be normalized encoding
- names as defined by normalize_encoding().
-
-Written by Marc-Andre Lemburg (mal@lemburg.com).
-
-(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
-
-"""#"
-
-import codecs
-import sys
-from . import aliases
-
-_cache = {}
-_unknown = '--unknown--'
-_import_tail = ['*']
-_aliases = aliases.aliases
-
-class CodecRegistryError(LookupError, SystemError):
- pass
-
-def normalize_encoding(encoding):
-
- """ Normalize an encoding name.
-
- Normalization works as follows: all non-alphanumeric
- characters except the dot used for Python package names are
- collapsed and replaced with a single underscore, e.g. ' -;#'
- becomes '_'. Leading and trailing underscores are removed.
-
- Note that encoding names should be ASCII only; if they do use
- non-ASCII characters, these must be Latin-1 compatible.
-
- """
- if isinstance(encoding, bytes):
- encoding = str(encoding, "ascii")
-
- chars = []
- punct = False
- for c in encoding:
- if c.isalnum() or c == '.':
- if punct and chars:
- chars.append('_')
- chars.append(c)
- punct = False
- else:
- punct = True
- return ''.join(chars)
-
-def search_function(encoding):
-
- # Cache lookup
- entry = _cache.get(encoding, _unknown)
- if entry is not _unknown:
- return entry
-
- # Import the module:
- #
- # First try to find an alias for the normalized encoding
- # name and lookup the module using the aliased name, then try to
- # lookup the module using the standard import scheme, i.e. first
- # try in the encodings package, then at top-level.
- #
- norm_encoding = normalize_encoding(encoding)
- aliased_encoding = _aliases.get(norm_encoding) or \
- _aliases.get(norm_encoding.replace('.', '_'))
- if aliased_encoding is not None:
- modnames = [aliased_encoding,
- norm_encoding]
- else:
- modnames = [norm_encoding]
- for modname in modnames:
- if not modname or '.' in modname:
- continue
- try:
- # Import is absolute to prevent the possibly malicious import of a
- # module with side-effects that is not in the 'encodings' package.
- mod = __import__('encodings.' + modname, fromlist=_import_tail,
- level=0)
- except ImportError:
- # ImportError may occur because 'encodings.(modname)' does not exist,
- # or because it imports a name that does not exist (see mbcs and oem)
- pass
- else:
- break
- else:
- mod = None
-
- try:
- getregentry = mod.getregentry
- except AttributeError:
- # Not a codec module
- mod = None
-
- if mod is None:
- # Cache misses
- _cache[encoding] = None
- return None
-
- # Now ask the module for the registry entry
- entry = getregentry()
- if not isinstance(entry, codecs.CodecInfo):
- if not 4 <= len(entry) <= 7:
- raise CodecRegistryError('module "%s" (%s) failed to register'
- % (mod.__name__, mod.__file__))
- if not callable(entry[0]) or not callable(entry[1]) or \
- (entry[2] is not None and not callable(entry[2])) or \
- (entry[3] is not None and not callable(entry[3])) or \
- (len(entry) > 4 and entry[4] is not None and not callable(entry[4])) or \
- (len(entry) > 5 and entry[5] is not None and not callable(entry[5])):
- raise CodecRegistryError('incompatible codecs in module "%s" (%s)'
- % (mod.__name__, mod.__file__))
- if len(entry)<7 or entry[6] is None:
- entry += (None,)*(6-len(entry)) + (mod.__name__.split(".", 1)[1],)
- entry = codecs.CodecInfo(*entry)
-
- # Cache the codec registry entry
- _cache[encoding] = entry
-
- # Register its aliases (without overwriting previously registered
- # aliases)
- try:
- codecaliases = mod.getaliases()
- except AttributeError:
- pass
- else:
- for alias in codecaliases:
- if alias not in _aliases:
- _aliases[alias] = modname
-
- # Return the registry entry
- return entry
-
-# Register the search_function in the Python codec registry
-codecs.register(search_function)
-
-if sys.platform == 'win32':
- def _alias_mbcs(encoding):
- try:
- import _winapi
- ansi_code_page = "cp%s" % _winapi.GetACP()
- if encoding == ansi_code_page:
- import encodings.mbcs
- return encodings.mbcs.getregentry()
- except ImportError:
- # Imports may fail while we are shutting down
- pass
-
- codecs.register(_alias_mbcs)
diff --git a/EasyTrans/Lib/encodings/__pycache__/__init__.cpython-37.pyc b/EasyTrans/Lib/encodings/__pycache__/__init__.cpython-37.pyc
deleted file mode 100644
index ee764be6..00000000
Binary files a/EasyTrans/Lib/encodings/__pycache__/__init__.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/encodings/__pycache__/aliases.cpython-37.pyc b/EasyTrans/Lib/encodings/__pycache__/aliases.cpython-37.pyc
deleted file mode 100644
index e6df445d..00000000
Binary files a/EasyTrans/Lib/encodings/__pycache__/aliases.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/encodings/__pycache__/ascii.cpython-37.pyc b/EasyTrans/Lib/encodings/__pycache__/ascii.cpython-37.pyc
deleted file mode 100644
index 41bcfed8..00000000
Binary files a/EasyTrans/Lib/encodings/__pycache__/ascii.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/encodings/__pycache__/cp437.cpython-37.pyc b/EasyTrans/Lib/encodings/__pycache__/cp437.cpython-37.pyc
deleted file mode 100644
index 8f86fe08..00000000
Binary files a/EasyTrans/Lib/encodings/__pycache__/cp437.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/encodings/__pycache__/gbk.cpython-37.pyc b/EasyTrans/Lib/encodings/__pycache__/gbk.cpython-37.pyc
deleted file mode 100644
index 5e55e107..00000000
Binary files a/EasyTrans/Lib/encodings/__pycache__/gbk.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/encodings/__pycache__/idna.cpython-37.pyc b/EasyTrans/Lib/encodings/__pycache__/idna.cpython-37.pyc
deleted file mode 100644
index 259db779..00000000
Binary files a/EasyTrans/Lib/encodings/__pycache__/idna.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/encodings/__pycache__/latin_1.cpython-37.pyc b/EasyTrans/Lib/encodings/__pycache__/latin_1.cpython-37.pyc
deleted file mode 100644
index bd1747bd..00000000
Binary files a/EasyTrans/Lib/encodings/__pycache__/latin_1.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/encodings/__pycache__/unicode_escape.cpython-37.pyc b/EasyTrans/Lib/encodings/__pycache__/unicode_escape.cpython-37.pyc
deleted file mode 100644
index 08499f56..00000000
Binary files a/EasyTrans/Lib/encodings/__pycache__/unicode_escape.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/encodings/__pycache__/utf_16_be.cpython-37.pyc b/EasyTrans/Lib/encodings/__pycache__/utf_16_be.cpython-37.pyc
deleted file mode 100644
index 3c773de0..00000000
Binary files a/EasyTrans/Lib/encodings/__pycache__/utf_16_be.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/encodings/__pycache__/utf_16_le.cpython-37.pyc b/EasyTrans/Lib/encodings/__pycache__/utf_16_le.cpython-37.pyc
deleted file mode 100644
index 6f59f41d..00000000
Binary files a/EasyTrans/Lib/encodings/__pycache__/utf_16_le.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/encodings/__pycache__/utf_8.cpython-37.pyc b/EasyTrans/Lib/encodings/__pycache__/utf_8.cpython-37.pyc
deleted file mode 100644
index d49e6b34..00000000
Binary files a/EasyTrans/Lib/encodings/__pycache__/utf_8.cpython-37.pyc and /dev/null differ
diff --git a/EasyTrans/Lib/encodings/aliases.py b/EasyTrans/Lib/encodings/aliases.py
deleted file mode 100644
index 2e63c2f9..00000000
--- a/EasyTrans/Lib/encodings/aliases.py
+++ /dev/null
@@ -1,550 +0,0 @@
-""" Encoding Aliases Support
-
- This module is used by the encodings package search function to
- map encodings names to module names.
-
- Note that the search function normalizes the encoding names before
- doing the lookup, so the mapping will have to map normalized
- encoding names to module names.
-
- Contents:
-
- The following aliases dictionary contains mappings of all IANA
- character set names for which the Python core library provides
- codecs. In addition to these, a few Python specific codec
- aliases have also been added.
-
-"""
-aliases = {
-
- # Please keep this list sorted alphabetically by value !
-
- # ascii codec
- '646' : 'ascii',
- 'ansi_x3.4_1968' : 'ascii',
- 'ansi_x3_4_1968' : 'ascii', # some email headers use this non-standard name
- 'ansi_x3.4_1986' : 'ascii',
- 'cp367' : 'ascii',
- 'csascii' : 'ascii',
- 'ibm367' : 'ascii',
- 'iso646_us' : 'ascii',
- 'iso_646.irv_1991' : 'ascii',
- 'iso_ir_6' : 'ascii',
- 'us' : 'ascii',
- 'us_ascii' : 'ascii',
-
- # base64_codec codec
- 'base64' : 'base64_codec',
- 'base_64' : 'base64_codec',
-
- # big5 codec
- 'big5_tw' : 'big5',
- 'csbig5' : 'big5',
-
- # big5hkscs codec
- 'big5_hkscs' : 'big5hkscs',
- 'hkscs' : 'big5hkscs',
-
- # bz2_codec codec
- 'bz2' : 'bz2_codec',
-
- # cp037 codec
- '037' : 'cp037',
- 'csibm037' : 'cp037',
- 'ebcdic_cp_ca' : 'cp037',
- 'ebcdic_cp_nl' : 'cp037',
- 'ebcdic_cp_us' : 'cp037',
- 'ebcdic_cp_wt' : 'cp037',
- 'ibm037' : 'cp037',
- 'ibm039' : 'cp037',
-
- # cp1026 codec
- '1026' : 'cp1026',
- 'csibm1026' : 'cp1026',
- 'ibm1026' : 'cp1026',
-
- # cp1125 codec
- '1125' : 'cp1125',
- 'ibm1125' : 'cp1125',
- 'cp866u' : 'cp1125',
- 'ruscii' : 'cp1125',
-
- # cp1140 codec
- '1140' : 'cp1140',
- 'ibm1140' : 'cp1140',
-
- # cp1250 codec
- '1250' : 'cp1250',
- 'windows_1250' : 'cp1250',
-
- # cp1251 codec
- '1251' : 'cp1251',
- 'windows_1251' : 'cp1251',
-
- # cp1252 codec
- '1252' : 'cp1252',
- 'windows_1252' : 'cp1252',
-
- # cp1253 codec
- '1253' : 'cp1253',
- 'windows_1253' : 'cp1253',
-
- # cp1254 codec
- '1254' : 'cp1254',
- 'windows_1254' : 'cp1254',
-
- # cp1255 codec
- '1255' : 'cp1255',
- 'windows_1255' : 'cp1255',
-
- # cp1256 codec
- '1256' : 'cp1256',
- 'windows_1256' : 'cp1256',
-
- # cp1257 codec
- '1257' : 'cp1257',
- 'windows_1257' : 'cp1257',
-
- # cp1258 codec
- '1258' : 'cp1258',
- 'windows_1258' : 'cp1258',
-
- # cp273 codec
- '273' : 'cp273',
- 'ibm273' : 'cp273',
- 'csibm273' : 'cp273',
-
- # cp424 codec
- '424' : 'cp424',
- 'csibm424' : 'cp424',
- 'ebcdic_cp_he' : 'cp424',
- 'ibm424' : 'cp424',
-
- # cp437 codec
- '437' : 'cp437',
- 'cspc8codepage437' : 'cp437',
- 'ibm437' : 'cp437',
-
- # cp500 codec
- '500' : 'cp500',
- 'csibm500' : 'cp500',
- 'ebcdic_cp_be' : 'cp500',
- 'ebcdic_cp_ch' : 'cp500',
- 'ibm500' : 'cp500',
-
- # cp775 codec
- '775' : 'cp775',
- 'cspc775baltic' : 'cp775',
- 'ibm775' : 'cp775',
-
- # cp850 codec
- '850' : 'cp850',
- 'cspc850multilingual' : 'cp850',
- 'ibm850' : 'cp850',
-
- # cp852 codec
- '852' : 'cp852',
- 'cspcp852' : 'cp852',
- 'ibm852' : 'cp852',
-
- # cp855 codec
- '855' : 'cp855',
- 'csibm855' : 'cp855',
- 'ibm855' : 'cp855',
-
- # cp857 codec
- '857' : 'cp857',
- 'csibm857' : 'cp857',
- 'ibm857' : 'cp857',
-
- # cp858 codec
- '858' : 'cp858',
- 'csibm858' : 'cp858',
- 'ibm858' : 'cp858',
-
- # cp860 codec
- '860' : 'cp860',
- 'csibm860' : 'cp860',
- 'ibm860' : 'cp860',
-
- # cp861 codec
- '861' : 'cp861',
- 'cp_is' : 'cp861',
- 'csibm861' : 'cp861',
- 'ibm861' : 'cp861',
-
- # cp862 codec
- '862' : 'cp862',
- 'cspc862latinhebrew' : 'cp862',
- 'ibm862' : 'cp862',
-
- # cp863 codec
- '863' : 'cp863',
- 'csibm863' : 'cp863',
- 'ibm863' : 'cp863',
-
- # cp864 codec
- '864' : 'cp864',
- 'csibm864' : 'cp864',
- 'ibm864' : 'cp864',
-
- # cp865 codec
- '865' : 'cp865',
- 'csibm865' : 'cp865',
- 'ibm865' : 'cp865',
-
- # cp866 codec
- '866' : 'cp866',
- 'csibm866' : 'cp866',
- 'ibm866' : 'cp866',
-
- # cp869 codec
- '869' : 'cp869',
- 'cp_gr' : 'cp869',
- 'csibm869' : 'cp869',
- 'ibm869' : 'cp869',
-
- # cp932 codec
- '932' : 'cp932',
- 'ms932' : 'cp932',
- 'mskanji' : 'cp932',
- 'ms_kanji' : 'cp932',
-
- # cp949 codec
- '949' : 'cp949',
- 'ms949' : 'cp949',
- 'uhc' : 'cp949',
-
- # cp950 codec
- '950' : 'cp950',
- 'ms950' : 'cp950',
-
- # euc_jis_2004 codec
- 'jisx0213' : 'euc_jis_2004',
- 'eucjis2004' : 'euc_jis_2004',
- 'euc_jis2004' : 'euc_jis_2004',
-
- # euc_jisx0213 codec
- 'eucjisx0213' : 'euc_jisx0213',
-
- # euc_jp codec
- 'eucjp' : 'euc_jp',
- 'ujis' : 'euc_jp',
- 'u_jis' : 'euc_jp',
-
- # euc_kr codec
- 'euckr' : 'euc_kr',
- 'korean' : 'euc_kr',
- 'ksc5601' : 'euc_kr',
- 'ks_c_5601' : 'euc_kr',
- 'ks_c_5601_1987' : 'euc_kr',
- 'ksx1001' : 'euc_kr',
- 'ks_x_1001' : 'euc_kr',
-
- # gb18030 codec
- 'gb18030_2000' : 'gb18030',
-
- # gb2312 codec
- 'chinese' : 'gb2312',
- 'csiso58gb231280' : 'gb2312',
- 'euc_cn' : 'gb2312',
- 'euccn' : 'gb2312',
- 'eucgb2312_cn' : 'gb2312',
- 'gb2312_1980' : 'gb2312',
- 'gb2312_80' : 'gb2312',
- 'iso_ir_58' : 'gb2312',
-
- # gbk codec
- '936' : 'gbk',
- 'cp936' : 'gbk',
- 'ms936' : 'gbk',
-
- # hex_codec codec
- 'hex' : 'hex_codec',
-
- # hp_roman8 codec
- 'roman8' : 'hp_roman8',
- 'r8' : 'hp_roman8',
- 'csHPRoman8' : 'hp_roman8',
-
- # hz codec
- 'hzgb' : 'hz',
- 'hz_gb' : 'hz',
- 'hz_gb_2312' : 'hz',
-
- # iso2022_jp codec
- 'csiso2022jp' : 'iso2022_jp',
- 'iso2022jp' : 'iso2022_jp',
- 'iso_2022_jp' : 'iso2022_jp',
-
- # iso2022_jp_1 codec
- 'iso2022jp_1' : 'iso2022_jp_1',
- 'iso_2022_jp_1' : 'iso2022_jp_1',
-
- # iso2022_jp_2 codec
- 'iso2022jp_2' : 'iso2022_jp_2',
- 'iso_2022_jp_2' : 'iso2022_jp_2',
-
- # iso2022_jp_2004 codec
- 'iso_2022_jp_2004' : 'iso2022_jp_2004',
- 'iso2022jp_2004' : 'iso2022_jp_2004',
-
- # iso2022_jp_3 codec
- 'iso2022jp_3' : 'iso2022_jp_3',
- 'iso_2022_jp_3' : 'iso2022_jp_3',
-
- # iso2022_jp_ext codec
- 'iso2022jp_ext' : 'iso2022_jp_ext',
- 'iso_2022_jp_ext' : 'iso2022_jp_ext',
-
- # iso2022_kr codec
- 'csiso2022kr' : 'iso2022_kr',
- 'iso2022kr' : 'iso2022_kr',
- 'iso_2022_kr' : 'iso2022_kr',
-
- # iso8859_10 codec
- 'csisolatin6' : 'iso8859_10',
- 'iso_8859_10' : 'iso8859_10',
- 'iso_8859_10_1992' : 'iso8859_10',
- 'iso_ir_157' : 'iso8859_10',
- 'l6' : 'iso8859_10',
- 'latin6' : 'iso8859_10',
-
- # iso8859_11 codec
- 'thai' : 'iso8859_11',
- 'iso_8859_11' : 'iso8859_11',
- 'iso_8859_11_2001' : 'iso8859_11',
-
- # iso8859_13 codec
- 'iso_8859_13' : 'iso8859_13',
- 'l7' : 'iso8859_13',
- 'latin7' : 'iso8859_13',
-
- # iso8859_14 codec
- 'iso_8859_14' : 'iso8859_14',
- 'iso_8859_14_1998' : 'iso8859_14',
- 'iso_celtic' : 'iso8859_14',
- 'iso_ir_199' : 'iso8859_14',
- 'l8' : 'iso8859_14',
- 'latin8' : 'iso8859_14',
-
- # iso8859_15 codec
- 'iso_8859_15' : 'iso8859_15',
- 'l9' : 'iso8859_15',
- 'latin9' : 'iso8859_15',
-
- # iso8859_16 codec
- 'iso_8859_16' : 'iso8859_16',
- 'iso_8859_16_2001' : 'iso8859_16',
- 'iso_ir_226' : 'iso8859_16',
- 'l10' : 'iso8859_16',
- 'latin10' : 'iso8859_16',
-
- # iso8859_2 codec
- 'csisolatin2' : 'iso8859_2',
- 'iso_8859_2' : 'iso8859_2',
- 'iso_8859_2_1987' : 'iso8859_2',
- 'iso_ir_101' : 'iso8859_2',
- 'l2' : 'iso8859_2',
- 'latin2' : 'iso8859_2',
-
- # iso8859_3 codec
- 'csisolatin3' : 'iso8859_3',
- 'iso_8859_3' : 'iso8859_3',
- 'iso_8859_3_1988' : 'iso8859_3',
- 'iso_ir_109' : 'iso8859_3',
- 'l3' : 'iso8859_3',
- 'latin3' : 'iso8859_3',
-
- # iso8859_4 codec
- 'csisolatin4' : 'iso8859_4',
- 'iso_8859_4' : 'iso8859_4',
- 'iso_8859_4_1988' : 'iso8859_4',
- 'iso_ir_110' : 'iso8859_4',
- 'l4' : 'iso8859_4',
- 'latin4' : 'iso8859_4',
-
- # iso8859_5 codec
- 'csisolatincyrillic' : 'iso8859_5',
- 'cyrillic' : 'iso8859_5',
- 'iso_8859_5' : 'iso8859_5',
- 'iso_8859_5_1988' : 'iso8859_5',
- 'iso_ir_144' : 'iso8859_5',
-
- # iso8859_6 codec
- 'arabic' : 'iso8859_6',
- 'asmo_708' : 'iso8859_6',
- 'csisolatinarabic' : 'iso8859_6',
- 'ecma_114' : 'iso8859_6',
- 'iso_8859_6' : 'iso8859_6',
- 'iso_8859_6_1987' : 'iso8859_6',
- 'iso_ir_127' : 'iso8859_6',
-
- # iso8859_7 codec
- 'csisolatingreek' : 'iso8859_7',
- 'ecma_118' : 'iso8859_7',
- 'elot_928' : 'iso8859_7',
- 'greek' : 'iso8859_7',
- 'greek8' : 'iso8859_7',
- 'iso_8859_7' : 'iso8859_7',
- 'iso_8859_7_1987' : 'iso8859_7',
- 'iso_ir_126' : 'iso8859_7',
-
- # iso8859_8 codec
- 'csisolatinhebrew' : 'iso8859_8',
- 'hebrew' : 'iso8859_8',
- 'iso_8859_8' : 'iso8859_8',
- 'iso_8859_8_1988' : 'iso8859_8',
- 'iso_ir_138' : 'iso8859_8',
-
- # iso8859_9 codec
- 'csisolatin5' : 'iso8859_9',
- 'iso_8859_9' : 'iso8859_9',
- 'iso_8859_9_1989' : 'iso8859_9',
- 'iso_ir_148' : 'iso8859_9',
- 'l5' : 'iso8859_9',
- 'latin5' : 'iso8859_9',
-
- # johab codec
- 'cp1361' : 'johab',
- 'ms1361' : 'johab',
-
- # koi8_r codec
- 'cskoi8r' : 'koi8_r',
-
- # kz1048 codec
- 'kz_1048' : 'kz1048',
- 'rk1048' : 'kz1048',
- 'strk1048_2002' : 'kz1048',
-
- # latin_1 codec
- #
- # Note that the latin_1 codec is implemented internally in C and a
- # lot faster than the charmap codec iso8859_1 which uses the same
- # encoding. This is why we discourage the use of the iso8859_1
- # codec and alias it to latin_1 instead.
- #
- '8859' : 'latin_1',
- 'cp819' : 'latin_1',
- 'csisolatin1' : 'latin_1',
- 'ibm819' : 'latin_1',
- 'iso8859' : 'latin_1',
- 'iso8859_1' : 'latin_1',
- 'iso_8859_1' : 'latin_1',
- 'iso_8859_1_1987' : 'latin_1',
- 'iso_ir_100' : 'latin_1',
- 'l1' : 'latin_1',
- 'latin' : 'latin_1',
- 'latin1' : 'latin_1',
-
- # mac_cyrillic codec
- 'maccyrillic' : 'mac_cyrillic',
-
- # mac_greek codec
- 'macgreek' : 'mac_greek',
-
- # mac_iceland codec
- 'maciceland' : 'mac_iceland',
-
- # mac_latin2 codec
- 'maccentraleurope' : 'mac_latin2',
- 'maclatin2' : 'mac_latin2',
-
- # mac_roman codec
- 'macintosh' : 'mac_roman',
- 'macroman' : 'mac_roman',
-
- # mac_turkish codec
- 'macturkish' : 'mac_turkish',
-
- # mbcs codec
- 'ansi' : 'mbcs',
- 'dbcs' : 'mbcs',
-
- # ptcp154 codec
- 'csptcp154' : 'ptcp154',
- 'pt154' : 'ptcp154',
- 'cp154' : 'ptcp154',
- 'cyrillic_asian' : 'ptcp154',
-
- # quopri_codec codec
- 'quopri' : 'quopri_codec',
- 'quoted_printable' : 'quopri_codec',
- 'quotedprintable' : 'quopri_codec',
-
- # rot_13 codec
- 'rot13' : 'rot_13',
-
- # shift_jis codec
- 'csshiftjis' : 'shift_jis',
- 'shiftjis' : 'shift_jis',
- 'sjis' : 'shift_jis',
- 's_jis' : 'shift_jis',
-
- # shift_jis_2004 codec
- 'shiftjis2004' : 'shift_jis_2004',
- 'sjis_2004' : 'shift_jis_2004',
- 's_jis_2004' : 'shift_jis_2004',
-
- # shift_jisx0213 codec
- 'shiftjisx0213' : 'shift_jisx0213',
- 'sjisx0213' : 'shift_jisx0213',
- 's_jisx0213' : 'shift_jisx0213',
-
- # tactis codec
- 'tis260' : 'tactis',
-
- # tis_620 codec
- 'tis620' : 'tis_620',
- 'tis_620_0' : 'tis_620',
- 'tis_620_2529_0' : 'tis_620',
- 'tis_620_2529_1' : 'tis_620',
- 'iso_ir_166' : 'tis_620',
-
- # utf_16 codec
- 'u16' : 'utf_16',
- 'utf16' : 'utf_16',
-
- # utf_16_be codec
- 'unicodebigunmarked' : 'utf_16_be',
- 'utf_16be' : 'utf_16_be',
-
- # utf_16_le codec
- 'unicodelittleunmarked' : 'utf_16_le',
- 'utf_16le' : 'utf_16_le',
-
- # utf_32 codec
- 'u32' : 'utf_32',
- 'utf32' : 'utf_32',
-
- # utf_32_be codec
- 'utf_32be' : 'utf_32_be',
-
- # utf_32_le codec
- 'utf_32le' : 'utf_32_le',
-
- # utf_7 codec
- 'u7' : 'utf_7',
- 'utf7' : 'utf_7',
- 'unicode_1_1_utf_7' : 'utf_7',
-
- # utf_8 codec
- 'u8' : 'utf_8',
- 'utf' : 'utf_8',
- 'utf8' : 'utf_8',
- 'utf8_ucs2' : 'utf_8',
- 'utf8_ucs4' : 'utf_8',
-
- # uu_codec codec
- 'uu' : 'uu_codec',
-
- # zlib_codec codec
- 'zip' : 'zlib_codec',
- 'zlib' : 'zlib_codec',
-
- # temporary mac CJK aliases, will be replaced by proper codecs in 3.1
- 'x_mac_japanese' : 'shift_jis',
- 'x_mac_korean' : 'euc_kr',
- 'x_mac_simp_chinese' : 'gb2312',
- 'x_mac_trad_chinese' : 'big5',
-}
diff --git a/EasyTrans/Lib/encodings/ascii.py b/EasyTrans/Lib/encodings/ascii.py
deleted file mode 100644
index 2033cde9..00000000
--- a/EasyTrans/Lib/encodings/ascii.py
+++ /dev/null
@@ -1,50 +0,0 @@
-""" Python 'ascii' Codec
-
-
-Written by Marc-Andre Lemburg (mal@lemburg.com).
-
-(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
-
-"""
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- # Note: Binding these as C functions will result in the class not
- # converting them to methods. This is intended.
- encode = codecs.ascii_encode
- decode = codecs.ascii_decode
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.ascii_encode(input, self.errors)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.ascii_decode(input, self.errors)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-class StreamConverter(StreamWriter,StreamReader):
-
- encode = codecs.ascii_decode
- decode = codecs.ascii_encode
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='ascii',
- encode=Codec.encode,
- decode=Codec.decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamwriter=StreamWriter,
- streamreader=StreamReader,
- )
diff --git a/EasyTrans/Lib/encodings/base64_codec.py b/EasyTrans/Lib/encodings/base64_codec.py
deleted file mode 100644
index 8e7703b3..00000000
--- a/EasyTrans/Lib/encodings/base64_codec.py
+++ /dev/null
@@ -1,55 +0,0 @@
-"""Python 'base64_codec' Codec - base64 content transfer encoding.
-
-This codec de/encodes from bytes to bytes.
-
-Written by Marc-Andre Lemburg (mal@lemburg.com).
-"""
-
-import codecs
-import base64
-
-### Codec APIs
-
-def base64_encode(input, errors='strict'):
- assert errors == 'strict'
- return (base64.encodebytes(input), len(input))
-
-def base64_decode(input, errors='strict'):
- assert errors == 'strict'
- return (base64.decodebytes(input), len(input))
-
-class Codec(codecs.Codec):
- def encode(self, input, errors='strict'):
- return base64_encode(input, errors)
- def decode(self, input, errors='strict'):
- return base64_decode(input, errors)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- assert self.errors == 'strict'
- return base64.encodebytes(input)
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- assert self.errors == 'strict'
- return base64.decodebytes(input)
-
-class StreamWriter(Codec, codecs.StreamWriter):
- charbuffertype = bytes
-
-class StreamReader(Codec, codecs.StreamReader):
- charbuffertype = bytes
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='base64',
- encode=base64_encode,
- decode=base64_decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamwriter=StreamWriter,
- streamreader=StreamReader,
- _is_text_encoding=False,
- )
diff --git a/EasyTrans/Lib/encodings/big5.py b/EasyTrans/Lib/encodings/big5.py
deleted file mode 100644
index 7adeb0e1..00000000
--- a/EasyTrans/Lib/encodings/big5.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# big5.py: Python Unicode Codec for BIG5
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_tw, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_tw.getcodec('big5')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='big5',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/big5hkscs.py b/EasyTrans/Lib/encodings/big5hkscs.py
deleted file mode 100644
index 350df37b..00000000
--- a/EasyTrans/Lib/encodings/big5hkscs.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# big5hkscs.py: Python Unicode Codec for BIG5HKSCS
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_hk, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_hk.getcodec('big5hkscs')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='big5hkscs',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/bz2_codec.py b/EasyTrans/Lib/encodings/bz2_codec.py
deleted file mode 100644
index fd9495e3..00000000
--- a/EasyTrans/Lib/encodings/bz2_codec.py
+++ /dev/null
@@ -1,78 +0,0 @@
-"""Python 'bz2_codec' Codec - bz2 compression encoding.
-
-This codec de/encodes from bytes to bytes and is therefore usable with
-bytes.transform() and bytes.untransform().
-
-Adapted by Raymond Hettinger from zlib_codec.py which was written
-by Marc-Andre Lemburg (mal@lemburg.com).
-"""
-
-import codecs
-import bz2 # this codec needs the optional bz2 module !
-
-### Codec APIs
-
-def bz2_encode(input, errors='strict'):
- assert errors == 'strict'
- return (bz2.compress(input), len(input))
-
-def bz2_decode(input, errors='strict'):
- assert errors == 'strict'
- return (bz2.decompress(input), len(input))
-
-class Codec(codecs.Codec):
- def encode(self, input, errors='strict'):
- return bz2_encode(input, errors)
- def decode(self, input, errors='strict'):
- return bz2_decode(input, errors)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def __init__(self, errors='strict'):
- assert errors == 'strict'
- self.errors = errors
- self.compressobj = bz2.BZ2Compressor()
-
- def encode(self, input, final=False):
- if final:
- c = self.compressobj.compress(input)
- return c + self.compressobj.flush()
- else:
- return self.compressobj.compress(input)
-
- def reset(self):
- self.compressobj = bz2.BZ2Compressor()
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def __init__(self, errors='strict'):
- assert errors == 'strict'
- self.errors = errors
- self.decompressobj = bz2.BZ2Decompressor()
-
- def decode(self, input, final=False):
- try:
- return self.decompressobj.decompress(input)
- except EOFError:
- return ''
-
- def reset(self):
- self.decompressobj = bz2.BZ2Decompressor()
-
-class StreamWriter(Codec, codecs.StreamWriter):
- charbuffertype = bytes
-
-class StreamReader(Codec, codecs.StreamReader):
- charbuffertype = bytes
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name="bz2",
- encode=bz2_encode,
- decode=bz2_decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamwriter=StreamWriter,
- streamreader=StreamReader,
- _is_text_encoding=False,
- )
diff --git a/EasyTrans/Lib/encodings/charmap.py b/EasyTrans/Lib/encodings/charmap.py
deleted file mode 100644
index 81189b16..00000000
--- a/EasyTrans/Lib/encodings/charmap.py
+++ /dev/null
@@ -1,69 +0,0 @@
-""" Generic Python Character Mapping Codec.
-
- Use this codec directly rather than through the automatic
- conversion mechanisms supplied by unicode() and .encode().
-
-
-Written by Marc-Andre Lemburg (mal@lemburg.com).
-
-(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- # Note: Binding these as C functions will result in the class not
- # converting them to methods. This is intended.
- encode = codecs.charmap_encode
- decode = codecs.charmap_decode
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def __init__(self, errors='strict', mapping=None):
- codecs.IncrementalEncoder.__init__(self, errors)
- self.mapping = mapping
-
- def encode(self, input, final=False):
- return codecs.charmap_encode(input, self.errors, self.mapping)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def __init__(self, errors='strict', mapping=None):
- codecs.IncrementalDecoder.__init__(self, errors)
- self.mapping = mapping
-
- def decode(self, input, final=False):
- return codecs.charmap_decode(input, self.errors, self.mapping)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
-
- def __init__(self,stream,errors='strict',mapping=None):
- codecs.StreamWriter.__init__(self,stream,errors)
- self.mapping = mapping
-
- def encode(self,input,errors='strict'):
- return Codec.encode(input,errors,self.mapping)
-
-class StreamReader(Codec,codecs.StreamReader):
-
- def __init__(self,stream,errors='strict',mapping=None):
- codecs.StreamReader.__init__(self,stream,errors)
- self.mapping = mapping
-
- def decode(self,input,errors='strict'):
- return Codec.decode(input,errors,self.mapping)
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='charmap',
- encode=Codec.encode,
- decode=Codec.decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamwriter=StreamWriter,
- streamreader=StreamReader,
- )
diff --git a/EasyTrans/Lib/encodings/cp037.py b/EasyTrans/Lib/encodings/cp037.py
deleted file mode 100644
index 4edd708f..00000000
--- a/EasyTrans/Lib/encodings/cp037.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp037 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP037.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp037',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x9c' # 0x04 -> CONTROL
- '\t' # 0x05 -> HORIZONTAL TABULATION
- '\x86' # 0x06 -> CONTROL
- '\x7f' # 0x07 -> DELETE
- '\x97' # 0x08 -> CONTROL
- '\x8d' # 0x09 -> CONTROL
- '\x8e' # 0x0A -> CONTROL
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x9d' # 0x14 -> CONTROL
- '\x85' # 0x15 -> CONTROL
- '\x08' # 0x16 -> BACKSPACE
- '\x87' # 0x17 -> CONTROL
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x92' # 0x1A -> CONTROL
- '\x8f' # 0x1B -> CONTROL
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- '\x80' # 0x20 -> CONTROL
- '\x81' # 0x21 -> CONTROL
- '\x82' # 0x22 -> CONTROL
- '\x83' # 0x23 -> CONTROL
- '\x84' # 0x24 -> CONTROL
- '\n' # 0x25 -> LINE FEED
- '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
- '\x1b' # 0x27 -> ESCAPE
- '\x88' # 0x28 -> CONTROL
- '\x89' # 0x29 -> CONTROL
- '\x8a' # 0x2A -> CONTROL
- '\x8b' # 0x2B -> CONTROL
- '\x8c' # 0x2C -> CONTROL
- '\x05' # 0x2D -> ENQUIRY
- '\x06' # 0x2E -> ACKNOWLEDGE
- '\x07' # 0x2F -> BELL
- '\x90' # 0x30 -> CONTROL
- '\x91' # 0x31 -> CONTROL
- '\x16' # 0x32 -> SYNCHRONOUS IDLE
- '\x93' # 0x33 -> CONTROL
- '\x94' # 0x34 -> CONTROL
- '\x95' # 0x35 -> CONTROL
- '\x96' # 0x36 -> CONTROL
- '\x04' # 0x37 -> END OF TRANSMISSION
- '\x98' # 0x38 -> CONTROL
- '\x99' # 0x39 -> CONTROL
- '\x9a' # 0x3A -> CONTROL
- '\x9b' # 0x3B -> CONTROL
- '\x14' # 0x3C -> DEVICE CONTROL FOUR
- '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
- '\x9e' # 0x3E -> CONTROL
- '\x1a' # 0x3F -> SUBSTITUTE
- ' ' # 0x40 -> SPACE
- '\xa0' # 0x41 -> NO-BREAK SPACE
- '\xe2' # 0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe4' # 0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe0' # 0x44 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe1' # 0x45 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe3' # 0x46 -> LATIN SMALL LETTER A WITH TILDE
- '\xe5' # 0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe7' # 0x48 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xf1' # 0x49 -> LATIN SMALL LETTER N WITH TILDE
- '\xa2' # 0x4A -> CENT SIGN
- '.' # 0x4B -> FULL STOP
- '<' # 0x4C -> LESS-THAN SIGN
- '(' # 0x4D -> LEFT PARENTHESIS
- '+' # 0x4E -> PLUS SIGN
- '|' # 0x4F -> VERTICAL LINE
- '&' # 0x50 -> AMPERSAND
- '\xe9' # 0x51 -> LATIN SMALL LETTER E WITH ACUTE
- '\xea' # 0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x54 -> LATIN SMALL LETTER E WITH GRAVE
- '\xed' # 0x55 -> LATIN SMALL LETTER I WITH ACUTE
- '\xee' # 0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xef' # 0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xec' # 0x58 -> LATIN SMALL LETTER I WITH GRAVE
- '\xdf' # 0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
- '!' # 0x5A -> EXCLAMATION MARK
- '$' # 0x5B -> DOLLAR SIGN
- '*' # 0x5C -> ASTERISK
- ')' # 0x5D -> RIGHT PARENTHESIS
- ';' # 0x5E -> SEMICOLON
- '\xac' # 0x5F -> NOT SIGN
- '-' # 0x60 -> HYPHEN-MINUS
- '/' # 0x61 -> SOLIDUS
- '\xc2' # 0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc4' # 0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc0' # 0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xc1' # 0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc3' # 0x66 -> LATIN CAPITAL LETTER A WITH TILDE
- '\xc5' # 0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc7' # 0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xd1' # 0x69 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xa6' # 0x6A -> BROKEN BAR
- ',' # 0x6B -> COMMA
- '%' # 0x6C -> PERCENT SIGN
- '_' # 0x6D -> LOW LINE
- '>' # 0x6E -> GREATER-THAN SIGN
- '?' # 0x6F -> QUESTION MARK
- '\xf8' # 0x70 -> LATIN SMALL LETTER O WITH STROKE
- '\xc9' # 0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xca' # 0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xc8' # 0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xcd' # 0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\xcc' # 0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
- '`' # 0x79 -> GRAVE ACCENT
- ':' # 0x7A -> COLON
- '#' # 0x7B -> NUMBER SIGN
- '@' # 0x7C -> COMMERCIAL AT
- "'" # 0x7D -> APOSTROPHE
- '=' # 0x7E -> EQUALS SIGN
- '"' # 0x7F -> QUOTATION MARK
- '\xd8' # 0x80 -> LATIN CAPITAL LETTER O WITH STROKE
- 'a' # 0x81 -> LATIN SMALL LETTER A
- 'b' # 0x82 -> LATIN SMALL LETTER B
- 'c' # 0x83 -> LATIN SMALL LETTER C
- 'd' # 0x84 -> LATIN SMALL LETTER D
- 'e' # 0x85 -> LATIN SMALL LETTER E
- 'f' # 0x86 -> LATIN SMALL LETTER F
- 'g' # 0x87 -> LATIN SMALL LETTER G
- 'h' # 0x88 -> LATIN SMALL LETTER H
- 'i' # 0x89 -> LATIN SMALL LETTER I
- '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xf0' # 0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
- '\xfd' # 0x8D -> LATIN SMALL LETTER Y WITH ACUTE
- '\xfe' # 0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
- '\xb1' # 0x8F -> PLUS-MINUS SIGN
- '\xb0' # 0x90 -> DEGREE SIGN
- 'j' # 0x91 -> LATIN SMALL LETTER J
- 'k' # 0x92 -> LATIN SMALL LETTER K
- 'l' # 0x93 -> LATIN SMALL LETTER L
- 'm' # 0x94 -> LATIN SMALL LETTER M
- 'n' # 0x95 -> LATIN SMALL LETTER N
- 'o' # 0x96 -> LATIN SMALL LETTER O
- 'p' # 0x97 -> LATIN SMALL LETTER P
- 'q' # 0x98 -> LATIN SMALL LETTER Q
- 'r' # 0x99 -> LATIN SMALL LETTER R
- '\xaa' # 0x9A -> FEMININE ORDINAL INDICATOR
- '\xba' # 0x9B -> MASCULINE ORDINAL INDICATOR
- '\xe6' # 0x9C -> LATIN SMALL LIGATURE AE
- '\xb8' # 0x9D -> CEDILLA
- '\xc6' # 0x9E -> LATIN CAPITAL LIGATURE AE
- '\xa4' # 0x9F -> CURRENCY SIGN
- '\xb5' # 0xA0 -> MICRO SIGN
- '~' # 0xA1 -> TILDE
- 's' # 0xA2 -> LATIN SMALL LETTER S
- 't' # 0xA3 -> LATIN SMALL LETTER T
- 'u' # 0xA4 -> LATIN SMALL LETTER U
- 'v' # 0xA5 -> LATIN SMALL LETTER V
- 'w' # 0xA6 -> LATIN SMALL LETTER W
- 'x' # 0xA7 -> LATIN SMALL LETTER X
- 'y' # 0xA8 -> LATIN SMALL LETTER Y
- 'z' # 0xA9 -> LATIN SMALL LETTER Z
- '\xa1' # 0xAA -> INVERTED EXCLAMATION MARK
- '\xbf' # 0xAB -> INVERTED QUESTION MARK
- '\xd0' # 0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
- '\xdd' # 0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\xde' # 0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
- '\xae' # 0xAF -> REGISTERED SIGN
- '^' # 0xB0 -> CIRCUMFLEX ACCENT
- '\xa3' # 0xB1 -> POUND SIGN
- '\xa5' # 0xB2 -> YEN SIGN
- '\xb7' # 0xB3 -> MIDDLE DOT
- '\xa9' # 0xB4 -> COPYRIGHT SIGN
- '\xa7' # 0xB5 -> SECTION SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
- '[' # 0xBA -> LEFT SQUARE BRACKET
- ']' # 0xBB -> RIGHT SQUARE BRACKET
- '\xaf' # 0xBC -> MACRON
- '\xa8' # 0xBD -> DIAERESIS
- '\xb4' # 0xBE -> ACUTE ACCENT
- '\xd7' # 0xBF -> MULTIPLICATION SIGN
- '{' # 0xC0 -> LEFT CURLY BRACKET
- 'A' # 0xC1 -> LATIN CAPITAL LETTER A
- 'B' # 0xC2 -> LATIN CAPITAL LETTER B
- 'C' # 0xC3 -> LATIN CAPITAL LETTER C
- 'D' # 0xC4 -> LATIN CAPITAL LETTER D
- 'E' # 0xC5 -> LATIN CAPITAL LETTER E
- 'F' # 0xC6 -> LATIN CAPITAL LETTER F
- 'G' # 0xC7 -> LATIN CAPITAL LETTER G
- 'H' # 0xC8 -> LATIN CAPITAL LETTER H
- 'I' # 0xC9 -> LATIN CAPITAL LETTER I
- '\xad' # 0xCA -> SOFT HYPHEN
- '\xf4' # 0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf6' # 0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf2' # 0xCD -> LATIN SMALL LETTER O WITH GRAVE
- '\xf3' # 0xCE -> LATIN SMALL LETTER O WITH ACUTE
- '\xf5' # 0xCF -> LATIN SMALL LETTER O WITH TILDE
- '}' # 0xD0 -> RIGHT CURLY BRACKET
- 'J' # 0xD1 -> LATIN CAPITAL LETTER J
- 'K' # 0xD2 -> LATIN CAPITAL LETTER K
- 'L' # 0xD3 -> LATIN CAPITAL LETTER L
- 'M' # 0xD4 -> LATIN CAPITAL LETTER M
- 'N' # 0xD5 -> LATIN CAPITAL LETTER N
- 'O' # 0xD6 -> LATIN CAPITAL LETTER O
- 'P' # 0xD7 -> LATIN CAPITAL LETTER P
- 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
- 'R' # 0xD9 -> LATIN CAPITAL LETTER R
- '\xb9' # 0xDA -> SUPERSCRIPT ONE
- '\xfb' # 0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xfc' # 0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xf9' # 0xDD -> LATIN SMALL LETTER U WITH GRAVE
- '\xfa' # 0xDE -> LATIN SMALL LETTER U WITH ACUTE
- '\xff' # 0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
- '\\' # 0xE0 -> REVERSE SOLIDUS
- '\xf7' # 0xE1 -> DIVISION SIGN
- 'S' # 0xE2 -> LATIN CAPITAL LETTER S
- 'T' # 0xE3 -> LATIN CAPITAL LETTER T
- 'U' # 0xE4 -> LATIN CAPITAL LETTER U
- 'V' # 0xE5 -> LATIN CAPITAL LETTER V
- 'W' # 0xE6 -> LATIN CAPITAL LETTER W
- 'X' # 0xE7 -> LATIN CAPITAL LETTER X
- 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
- 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
- '\xb2' # 0xEA -> SUPERSCRIPT TWO
- '\xd4' # 0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xd6' # 0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xd2' # 0xED -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd5' # 0xEF -> LATIN CAPITAL LETTER O WITH TILDE
- '0' # 0xF0 -> DIGIT ZERO
- '1' # 0xF1 -> DIGIT ONE
- '2' # 0xF2 -> DIGIT TWO
- '3' # 0xF3 -> DIGIT THREE
- '4' # 0xF4 -> DIGIT FOUR
- '5' # 0xF5 -> DIGIT FIVE
- '6' # 0xF6 -> DIGIT SIX
- '7' # 0xF7 -> DIGIT SEVEN
- '8' # 0xF8 -> DIGIT EIGHT
- '9' # 0xF9 -> DIGIT NINE
- '\xb3' # 0xFA -> SUPERSCRIPT THREE
- '\xdb' # 0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\xdc' # 0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xd9' # 0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xda' # 0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
- '\x9f' # 0xFF -> CONTROL
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1006.py b/EasyTrans/Lib/encodings/cp1006.py
deleted file mode 100644
index a1221c3e..00000000
--- a/EasyTrans/Lib/encodings/cp1006.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1006 generated from 'MAPPINGS/VENDORS/MISC/CP1006.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1006',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\x80' # 0x80 ->
- '\x81' # 0x81 ->
- '\x82' # 0x82 ->
- '\x83' # 0x83 ->
- '\x84' # 0x84 ->
- '\x85' # 0x85 ->
- '\x86' # 0x86 ->
- '\x87' # 0x87 ->
- '\x88' # 0x88 ->
- '\x89' # 0x89 ->
- '\x8a' # 0x8A ->
- '\x8b' # 0x8B ->
- '\x8c' # 0x8C ->
- '\x8d' # 0x8D ->
- '\x8e' # 0x8E ->
- '\x8f' # 0x8F ->
- '\x90' # 0x90 ->
- '\x91' # 0x91 ->
- '\x92' # 0x92 ->
- '\x93' # 0x93 ->
- '\x94' # 0x94 ->
- '\x95' # 0x95 ->
- '\x96' # 0x96 ->
- '\x97' # 0x97 ->
- '\x98' # 0x98 ->
- '\x99' # 0x99 ->
- '\x9a' # 0x9A ->
- '\x9b' # 0x9B ->
- '\x9c' # 0x9C ->
- '\x9d' # 0x9D ->
- '\x9e' # 0x9E ->
- '\x9f' # 0x9F ->
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\u06f0' # 0xA1 -> EXTENDED ARABIC-INDIC DIGIT ZERO
- '\u06f1' # 0xA2 -> EXTENDED ARABIC-INDIC DIGIT ONE
- '\u06f2' # 0xA3 -> EXTENDED ARABIC-INDIC DIGIT TWO
- '\u06f3' # 0xA4 -> EXTENDED ARABIC-INDIC DIGIT THREE
- '\u06f4' # 0xA5 -> EXTENDED ARABIC-INDIC DIGIT FOUR
- '\u06f5' # 0xA6 -> EXTENDED ARABIC-INDIC DIGIT FIVE
- '\u06f6' # 0xA7 -> EXTENDED ARABIC-INDIC DIGIT SIX
- '\u06f7' # 0xA8 -> EXTENDED ARABIC-INDIC DIGIT SEVEN
- '\u06f8' # 0xA9 -> EXTENDED ARABIC-INDIC DIGIT EIGHT
- '\u06f9' # 0xAA -> EXTENDED ARABIC-INDIC DIGIT NINE
- '\u060c' # 0xAB -> ARABIC COMMA
- '\u061b' # 0xAC -> ARABIC SEMICOLON
- '\xad' # 0xAD -> SOFT HYPHEN
- '\u061f' # 0xAE -> ARABIC QUESTION MARK
- '\ufe81' # 0xAF -> ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
- '\ufe8d' # 0xB0 -> ARABIC LETTER ALEF ISOLATED FORM
- '\ufe8e' # 0xB1 -> ARABIC LETTER ALEF FINAL FORM
- '\ufe8e' # 0xB2 -> ARABIC LETTER ALEF FINAL FORM
- '\ufe8f' # 0xB3 -> ARABIC LETTER BEH ISOLATED FORM
- '\ufe91' # 0xB4 -> ARABIC LETTER BEH INITIAL FORM
- '\ufb56' # 0xB5 -> ARABIC LETTER PEH ISOLATED FORM
- '\ufb58' # 0xB6 -> ARABIC LETTER PEH INITIAL FORM
- '\ufe93' # 0xB7 -> ARABIC LETTER TEH MARBUTA ISOLATED FORM
- '\ufe95' # 0xB8 -> ARABIC LETTER TEH ISOLATED FORM
- '\ufe97' # 0xB9 -> ARABIC LETTER TEH INITIAL FORM
- '\ufb66' # 0xBA -> ARABIC LETTER TTEH ISOLATED FORM
- '\ufb68' # 0xBB -> ARABIC LETTER TTEH INITIAL FORM
- '\ufe99' # 0xBC -> ARABIC LETTER THEH ISOLATED FORM
- '\ufe9b' # 0xBD -> ARABIC LETTER THEH INITIAL FORM
- '\ufe9d' # 0xBE -> ARABIC LETTER JEEM ISOLATED FORM
- '\ufe9f' # 0xBF -> ARABIC LETTER JEEM INITIAL FORM
- '\ufb7a' # 0xC0 -> ARABIC LETTER TCHEH ISOLATED FORM
- '\ufb7c' # 0xC1 -> ARABIC LETTER TCHEH INITIAL FORM
- '\ufea1' # 0xC2 -> ARABIC LETTER HAH ISOLATED FORM
- '\ufea3' # 0xC3 -> ARABIC LETTER HAH INITIAL FORM
- '\ufea5' # 0xC4 -> ARABIC LETTER KHAH ISOLATED FORM
- '\ufea7' # 0xC5 -> ARABIC LETTER KHAH INITIAL FORM
- '\ufea9' # 0xC6 -> ARABIC LETTER DAL ISOLATED FORM
- '\ufb84' # 0xC7 -> ARABIC LETTER DAHAL ISOLATED FORMN
- '\ufeab' # 0xC8 -> ARABIC LETTER THAL ISOLATED FORM
- '\ufead' # 0xC9 -> ARABIC LETTER REH ISOLATED FORM
- '\ufb8c' # 0xCA -> ARABIC LETTER RREH ISOLATED FORM
- '\ufeaf' # 0xCB -> ARABIC LETTER ZAIN ISOLATED FORM
- '\ufb8a' # 0xCC -> ARABIC LETTER JEH ISOLATED FORM
- '\ufeb1' # 0xCD -> ARABIC LETTER SEEN ISOLATED FORM
- '\ufeb3' # 0xCE -> ARABIC LETTER SEEN INITIAL FORM
- '\ufeb5' # 0xCF -> ARABIC LETTER SHEEN ISOLATED FORM
- '\ufeb7' # 0xD0 -> ARABIC LETTER SHEEN INITIAL FORM
- '\ufeb9' # 0xD1 -> ARABIC LETTER SAD ISOLATED FORM
- '\ufebb' # 0xD2 -> ARABIC LETTER SAD INITIAL FORM
- '\ufebd' # 0xD3 -> ARABIC LETTER DAD ISOLATED FORM
- '\ufebf' # 0xD4 -> ARABIC LETTER DAD INITIAL FORM
- '\ufec1' # 0xD5 -> ARABIC LETTER TAH ISOLATED FORM
- '\ufec5' # 0xD6 -> ARABIC LETTER ZAH ISOLATED FORM
- '\ufec9' # 0xD7 -> ARABIC LETTER AIN ISOLATED FORM
- '\ufeca' # 0xD8 -> ARABIC LETTER AIN FINAL FORM
- '\ufecb' # 0xD9 -> ARABIC LETTER AIN INITIAL FORM
- '\ufecc' # 0xDA -> ARABIC LETTER AIN MEDIAL FORM
- '\ufecd' # 0xDB -> ARABIC LETTER GHAIN ISOLATED FORM
- '\ufece' # 0xDC -> ARABIC LETTER GHAIN FINAL FORM
- '\ufecf' # 0xDD -> ARABIC LETTER GHAIN INITIAL FORM
- '\ufed0' # 0xDE -> ARABIC LETTER GHAIN MEDIAL FORM
- '\ufed1' # 0xDF -> ARABIC LETTER FEH ISOLATED FORM
- '\ufed3' # 0xE0 -> ARABIC LETTER FEH INITIAL FORM
- '\ufed5' # 0xE1 -> ARABIC LETTER QAF ISOLATED FORM
- '\ufed7' # 0xE2 -> ARABIC LETTER QAF INITIAL FORM
- '\ufed9' # 0xE3 -> ARABIC LETTER KAF ISOLATED FORM
- '\ufedb' # 0xE4 -> ARABIC LETTER KAF INITIAL FORM
- '\ufb92' # 0xE5 -> ARABIC LETTER GAF ISOLATED FORM
- '\ufb94' # 0xE6 -> ARABIC LETTER GAF INITIAL FORM
- '\ufedd' # 0xE7 -> ARABIC LETTER LAM ISOLATED FORM
- '\ufedf' # 0xE8 -> ARABIC LETTER LAM INITIAL FORM
- '\ufee0' # 0xE9 -> ARABIC LETTER LAM MEDIAL FORM
- '\ufee1' # 0xEA -> ARABIC LETTER MEEM ISOLATED FORM
- '\ufee3' # 0xEB -> ARABIC LETTER MEEM INITIAL FORM
- '\ufb9e' # 0xEC -> ARABIC LETTER NOON GHUNNA ISOLATED FORM
- '\ufee5' # 0xED -> ARABIC LETTER NOON ISOLATED FORM
- '\ufee7' # 0xEE -> ARABIC LETTER NOON INITIAL FORM
- '\ufe85' # 0xEF -> ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
- '\ufeed' # 0xF0 -> ARABIC LETTER WAW ISOLATED FORM
- '\ufba6' # 0xF1 -> ARABIC LETTER HEH GOAL ISOLATED FORM
- '\ufba8' # 0xF2 -> ARABIC LETTER HEH GOAL INITIAL FORM
- '\ufba9' # 0xF3 -> ARABIC LETTER HEH GOAL MEDIAL FORM
- '\ufbaa' # 0xF4 -> ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
- '\ufe80' # 0xF5 -> ARABIC LETTER HAMZA ISOLATED FORM
- '\ufe89' # 0xF6 -> ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
- '\ufe8a' # 0xF7 -> ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
- '\ufe8b' # 0xF8 -> ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
- '\ufef1' # 0xF9 -> ARABIC LETTER YEH ISOLATED FORM
- '\ufef2' # 0xFA -> ARABIC LETTER YEH FINAL FORM
- '\ufef3' # 0xFB -> ARABIC LETTER YEH INITIAL FORM
- '\ufbb0' # 0xFC -> ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
- '\ufbae' # 0xFD -> ARABIC LETTER YEH BARREE ISOLATED FORM
- '\ufe7c' # 0xFE -> ARABIC SHADDA ISOLATED FORM
- '\ufe7d' # 0xFF -> ARABIC SHADDA MEDIAL FORM
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1026.py b/EasyTrans/Lib/encodings/cp1026.py
deleted file mode 100644
index 46f71f74..00000000
--- a/EasyTrans/Lib/encodings/cp1026.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1026 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP1026.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1026',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x9c' # 0x04 -> CONTROL
- '\t' # 0x05 -> HORIZONTAL TABULATION
- '\x86' # 0x06 -> CONTROL
- '\x7f' # 0x07 -> DELETE
- '\x97' # 0x08 -> CONTROL
- '\x8d' # 0x09 -> CONTROL
- '\x8e' # 0x0A -> CONTROL
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x9d' # 0x14 -> CONTROL
- '\x85' # 0x15 -> CONTROL
- '\x08' # 0x16 -> BACKSPACE
- '\x87' # 0x17 -> CONTROL
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x92' # 0x1A -> CONTROL
- '\x8f' # 0x1B -> CONTROL
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- '\x80' # 0x20 -> CONTROL
- '\x81' # 0x21 -> CONTROL
- '\x82' # 0x22 -> CONTROL
- '\x83' # 0x23 -> CONTROL
- '\x84' # 0x24 -> CONTROL
- '\n' # 0x25 -> LINE FEED
- '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
- '\x1b' # 0x27 -> ESCAPE
- '\x88' # 0x28 -> CONTROL
- '\x89' # 0x29 -> CONTROL
- '\x8a' # 0x2A -> CONTROL
- '\x8b' # 0x2B -> CONTROL
- '\x8c' # 0x2C -> CONTROL
- '\x05' # 0x2D -> ENQUIRY
- '\x06' # 0x2E -> ACKNOWLEDGE
- '\x07' # 0x2F -> BELL
- '\x90' # 0x30 -> CONTROL
- '\x91' # 0x31 -> CONTROL
- '\x16' # 0x32 -> SYNCHRONOUS IDLE
- '\x93' # 0x33 -> CONTROL
- '\x94' # 0x34 -> CONTROL
- '\x95' # 0x35 -> CONTROL
- '\x96' # 0x36 -> CONTROL
- '\x04' # 0x37 -> END OF TRANSMISSION
- '\x98' # 0x38 -> CONTROL
- '\x99' # 0x39 -> CONTROL
- '\x9a' # 0x3A -> CONTROL
- '\x9b' # 0x3B -> CONTROL
- '\x14' # 0x3C -> DEVICE CONTROL FOUR
- '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
- '\x9e' # 0x3E -> CONTROL
- '\x1a' # 0x3F -> SUBSTITUTE
- ' ' # 0x40 -> SPACE
- '\xa0' # 0x41 -> NO-BREAK SPACE
- '\xe2' # 0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe4' # 0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe0' # 0x44 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe1' # 0x45 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe3' # 0x46 -> LATIN SMALL LETTER A WITH TILDE
- '\xe5' # 0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
- '{' # 0x48 -> LEFT CURLY BRACKET
- '\xf1' # 0x49 -> LATIN SMALL LETTER N WITH TILDE
- '\xc7' # 0x4A -> LATIN CAPITAL LETTER C WITH CEDILLA
- '.' # 0x4B -> FULL STOP
- '<' # 0x4C -> LESS-THAN SIGN
- '(' # 0x4D -> LEFT PARENTHESIS
- '+' # 0x4E -> PLUS SIGN
- '!' # 0x4F -> EXCLAMATION MARK
- '&' # 0x50 -> AMPERSAND
- '\xe9' # 0x51 -> LATIN SMALL LETTER E WITH ACUTE
- '\xea' # 0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x54 -> LATIN SMALL LETTER E WITH GRAVE
- '\xed' # 0x55 -> LATIN SMALL LETTER I WITH ACUTE
- '\xee' # 0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xef' # 0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xec' # 0x58 -> LATIN SMALL LETTER I WITH GRAVE
- '\xdf' # 0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
- '\u011e' # 0x5A -> LATIN CAPITAL LETTER G WITH BREVE
- '\u0130' # 0x5B -> LATIN CAPITAL LETTER I WITH DOT ABOVE
- '*' # 0x5C -> ASTERISK
- ')' # 0x5D -> RIGHT PARENTHESIS
- ';' # 0x5E -> SEMICOLON
- '^' # 0x5F -> CIRCUMFLEX ACCENT
- '-' # 0x60 -> HYPHEN-MINUS
- '/' # 0x61 -> SOLIDUS
- '\xc2' # 0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc4' # 0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc0' # 0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xc1' # 0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc3' # 0x66 -> LATIN CAPITAL LETTER A WITH TILDE
- '\xc5' # 0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '[' # 0x68 -> LEFT SQUARE BRACKET
- '\xd1' # 0x69 -> LATIN CAPITAL LETTER N WITH TILDE
- '\u015f' # 0x6A -> LATIN SMALL LETTER S WITH CEDILLA
- ',' # 0x6B -> COMMA
- '%' # 0x6C -> PERCENT SIGN
- '_' # 0x6D -> LOW LINE
- '>' # 0x6E -> GREATER-THAN SIGN
- '?' # 0x6F -> QUESTION MARK
- '\xf8' # 0x70 -> LATIN SMALL LETTER O WITH STROKE
- '\xc9' # 0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xca' # 0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xc8' # 0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xcd' # 0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\xcc' # 0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
- '\u0131' # 0x79 -> LATIN SMALL LETTER DOTLESS I
- ':' # 0x7A -> COLON
- '\xd6' # 0x7B -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\u015e' # 0x7C -> LATIN CAPITAL LETTER S WITH CEDILLA
- "'" # 0x7D -> APOSTROPHE
- '=' # 0x7E -> EQUALS SIGN
- '\xdc' # 0x7F -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xd8' # 0x80 -> LATIN CAPITAL LETTER O WITH STROKE
- 'a' # 0x81 -> LATIN SMALL LETTER A
- 'b' # 0x82 -> LATIN SMALL LETTER B
- 'c' # 0x83 -> LATIN SMALL LETTER C
- 'd' # 0x84 -> LATIN SMALL LETTER D
- 'e' # 0x85 -> LATIN SMALL LETTER E
- 'f' # 0x86 -> LATIN SMALL LETTER F
- 'g' # 0x87 -> LATIN SMALL LETTER G
- 'h' # 0x88 -> LATIN SMALL LETTER H
- 'i' # 0x89 -> LATIN SMALL LETTER I
- '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '}' # 0x8C -> RIGHT CURLY BRACKET
- '`' # 0x8D -> GRAVE ACCENT
- '\xa6' # 0x8E -> BROKEN BAR
- '\xb1' # 0x8F -> PLUS-MINUS SIGN
- '\xb0' # 0x90 -> DEGREE SIGN
- 'j' # 0x91 -> LATIN SMALL LETTER J
- 'k' # 0x92 -> LATIN SMALL LETTER K
- 'l' # 0x93 -> LATIN SMALL LETTER L
- 'm' # 0x94 -> LATIN SMALL LETTER M
- 'n' # 0x95 -> LATIN SMALL LETTER N
- 'o' # 0x96 -> LATIN SMALL LETTER O
- 'p' # 0x97 -> LATIN SMALL LETTER P
- 'q' # 0x98 -> LATIN SMALL LETTER Q
- 'r' # 0x99 -> LATIN SMALL LETTER R
- '\xaa' # 0x9A -> FEMININE ORDINAL INDICATOR
- '\xba' # 0x9B -> MASCULINE ORDINAL INDICATOR
- '\xe6' # 0x9C -> LATIN SMALL LIGATURE AE
- '\xb8' # 0x9D -> CEDILLA
- '\xc6' # 0x9E -> LATIN CAPITAL LIGATURE AE
- '\xa4' # 0x9F -> CURRENCY SIGN
- '\xb5' # 0xA0 -> MICRO SIGN
- '\xf6' # 0xA1 -> LATIN SMALL LETTER O WITH DIAERESIS
- 's' # 0xA2 -> LATIN SMALL LETTER S
- 't' # 0xA3 -> LATIN SMALL LETTER T
- 'u' # 0xA4 -> LATIN SMALL LETTER U
- 'v' # 0xA5 -> LATIN SMALL LETTER V
- 'w' # 0xA6 -> LATIN SMALL LETTER W
- 'x' # 0xA7 -> LATIN SMALL LETTER X
- 'y' # 0xA8 -> LATIN SMALL LETTER Y
- 'z' # 0xA9 -> LATIN SMALL LETTER Z
- '\xa1' # 0xAA -> INVERTED EXCLAMATION MARK
- '\xbf' # 0xAB -> INVERTED QUESTION MARK
- ']' # 0xAC -> RIGHT SQUARE BRACKET
- '$' # 0xAD -> DOLLAR SIGN
- '@' # 0xAE -> COMMERCIAL AT
- '\xae' # 0xAF -> REGISTERED SIGN
- '\xa2' # 0xB0 -> CENT SIGN
- '\xa3' # 0xB1 -> POUND SIGN
- '\xa5' # 0xB2 -> YEN SIGN
- '\xb7' # 0xB3 -> MIDDLE DOT
- '\xa9' # 0xB4 -> COPYRIGHT SIGN
- '\xa7' # 0xB5 -> SECTION SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
- '\xac' # 0xBA -> NOT SIGN
- '|' # 0xBB -> VERTICAL LINE
- '\xaf' # 0xBC -> MACRON
- '\xa8' # 0xBD -> DIAERESIS
- '\xb4' # 0xBE -> ACUTE ACCENT
- '\xd7' # 0xBF -> MULTIPLICATION SIGN
- '\xe7' # 0xC0 -> LATIN SMALL LETTER C WITH CEDILLA
- 'A' # 0xC1 -> LATIN CAPITAL LETTER A
- 'B' # 0xC2 -> LATIN CAPITAL LETTER B
- 'C' # 0xC3 -> LATIN CAPITAL LETTER C
- 'D' # 0xC4 -> LATIN CAPITAL LETTER D
- 'E' # 0xC5 -> LATIN CAPITAL LETTER E
- 'F' # 0xC6 -> LATIN CAPITAL LETTER F
- 'G' # 0xC7 -> LATIN CAPITAL LETTER G
- 'H' # 0xC8 -> LATIN CAPITAL LETTER H
- 'I' # 0xC9 -> LATIN CAPITAL LETTER I
- '\xad' # 0xCA -> SOFT HYPHEN
- '\xf4' # 0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '~' # 0xCC -> TILDE
- '\xf2' # 0xCD -> LATIN SMALL LETTER O WITH GRAVE
- '\xf3' # 0xCE -> LATIN SMALL LETTER O WITH ACUTE
- '\xf5' # 0xCF -> LATIN SMALL LETTER O WITH TILDE
- '\u011f' # 0xD0 -> LATIN SMALL LETTER G WITH BREVE
- 'J' # 0xD1 -> LATIN CAPITAL LETTER J
- 'K' # 0xD2 -> LATIN CAPITAL LETTER K
- 'L' # 0xD3 -> LATIN CAPITAL LETTER L
- 'M' # 0xD4 -> LATIN CAPITAL LETTER M
- 'N' # 0xD5 -> LATIN CAPITAL LETTER N
- 'O' # 0xD6 -> LATIN CAPITAL LETTER O
- 'P' # 0xD7 -> LATIN CAPITAL LETTER P
- 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
- 'R' # 0xD9 -> LATIN CAPITAL LETTER R
- '\xb9' # 0xDA -> SUPERSCRIPT ONE
- '\xfb' # 0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\\' # 0xDC -> REVERSE SOLIDUS
- '\xf9' # 0xDD -> LATIN SMALL LETTER U WITH GRAVE
- '\xfa' # 0xDE -> LATIN SMALL LETTER U WITH ACUTE
- '\xff' # 0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
- '\xfc' # 0xE0 -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xf7' # 0xE1 -> DIVISION SIGN
- 'S' # 0xE2 -> LATIN CAPITAL LETTER S
- 'T' # 0xE3 -> LATIN CAPITAL LETTER T
- 'U' # 0xE4 -> LATIN CAPITAL LETTER U
- 'V' # 0xE5 -> LATIN CAPITAL LETTER V
- 'W' # 0xE6 -> LATIN CAPITAL LETTER W
- 'X' # 0xE7 -> LATIN CAPITAL LETTER X
- 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
- 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
- '\xb2' # 0xEA -> SUPERSCRIPT TWO
- '\xd4' # 0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '#' # 0xEC -> NUMBER SIGN
- '\xd2' # 0xED -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd5' # 0xEF -> LATIN CAPITAL LETTER O WITH TILDE
- '0' # 0xF0 -> DIGIT ZERO
- '1' # 0xF1 -> DIGIT ONE
- '2' # 0xF2 -> DIGIT TWO
- '3' # 0xF3 -> DIGIT THREE
- '4' # 0xF4 -> DIGIT FOUR
- '5' # 0xF5 -> DIGIT FIVE
- '6' # 0xF6 -> DIGIT SIX
- '7' # 0xF7 -> DIGIT SEVEN
- '8' # 0xF8 -> DIGIT EIGHT
- '9' # 0xF9 -> DIGIT NINE
- '\xb3' # 0xFA -> SUPERSCRIPT THREE
- '\xdb' # 0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '"' # 0xFC -> QUOTATION MARK
- '\xd9' # 0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xda' # 0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
- '\x9f' # 0xFF -> CONTROL
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1125.py b/EasyTrans/Lib/encodings/cp1125.py
deleted file mode 100644
index b1fd69de..00000000
--- a/EasyTrans/Lib/encodings/cp1125.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec for CP1125
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1125',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x0410, # CYRILLIC CAPITAL LETTER A
- 0x0081: 0x0411, # CYRILLIC CAPITAL LETTER BE
- 0x0082: 0x0412, # CYRILLIC CAPITAL LETTER VE
- 0x0083: 0x0413, # CYRILLIC CAPITAL LETTER GHE
- 0x0084: 0x0414, # CYRILLIC CAPITAL LETTER DE
- 0x0085: 0x0415, # CYRILLIC CAPITAL LETTER IE
- 0x0086: 0x0416, # CYRILLIC CAPITAL LETTER ZHE
- 0x0087: 0x0417, # CYRILLIC CAPITAL LETTER ZE
- 0x0088: 0x0418, # CYRILLIC CAPITAL LETTER I
- 0x0089: 0x0419, # CYRILLIC CAPITAL LETTER SHORT I
- 0x008a: 0x041a, # CYRILLIC CAPITAL LETTER KA
- 0x008b: 0x041b, # CYRILLIC CAPITAL LETTER EL
- 0x008c: 0x041c, # CYRILLIC CAPITAL LETTER EM
- 0x008d: 0x041d, # CYRILLIC CAPITAL LETTER EN
- 0x008e: 0x041e, # CYRILLIC CAPITAL LETTER O
- 0x008f: 0x041f, # CYRILLIC CAPITAL LETTER PE
- 0x0090: 0x0420, # CYRILLIC CAPITAL LETTER ER
- 0x0091: 0x0421, # CYRILLIC CAPITAL LETTER ES
- 0x0092: 0x0422, # CYRILLIC CAPITAL LETTER TE
- 0x0093: 0x0423, # CYRILLIC CAPITAL LETTER U
- 0x0094: 0x0424, # CYRILLIC CAPITAL LETTER EF
- 0x0095: 0x0425, # CYRILLIC CAPITAL LETTER HA
- 0x0096: 0x0426, # CYRILLIC CAPITAL LETTER TSE
- 0x0097: 0x0427, # CYRILLIC CAPITAL LETTER CHE
- 0x0098: 0x0428, # CYRILLIC CAPITAL LETTER SHA
- 0x0099: 0x0429, # CYRILLIC CAPITAL LETTER SHCHA
- 0x009a: 0x042a, # CYRILLIC CAPITAL LETTER HARD SIGN
- 0x009b: 0x042b, # CYRILLIC CAPITAL LETTER YERU
- 0x009c: 0x042c, # CYRILLIC CAPITAL LETTER SOFT SIGN
- 0x009d: 0x042d, # CYRILLIC CAPITAL LETTER E
- 0x009e: 0x042e, # CYRILLIC CAPITAL LETTER YU
- 0x009f: 0x042f, # CYRILLIC CAPITAL LETTER YA
- 0x00a0: 0x0430, # CYRILLIC SMALL LETTER A
- 0x00a1: 0x0431, # CYRILLIC SMALL LETTER BE
- 0x00a2: 0x0432, # CYRILLIC SMALL LETTER VE
- 0x00a3: 0x0433, # CYRILLIC SMALL LETTER GHE
- 0x00a4: 0x0434, # CYRILLIC SMALL LETTER DE
- 0x00a5: 0x0435, # CYRILLIC SMALL LETTER IE
- 0x00a6: 0x0436, # CYRILLIC SMALL LETTER ZHE
- 0x00a7: 0x0437, # CYRILLIC SMALL LETTER ZE
- 0x00a8: 0x0438, # CYRILLIC SMALL LETTER I
- 0x00a9: 0x0439, # CYRILLIC SMALL LETTER SHORT I
- 0x00aa: 0x043a, # CYRILLIC SMALL LETTER KA
- 0x00ab: 0x043b, # CYRILLIC SMALL LETTER EL
- 0x00ac: 0x043c, # CYRILLIC SMALL LETTER EM
- 0x00ad: 0x043d, # CYRILLIC SMALL LETTER EN
- 0x00ae: 0x043e, # CYRILLIC SMALL LETTER O
- 0x00af: 0x043f, # CYRILLIC SMALL LETTER PE
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x258c, # LEFT HALF BLOCK
- 0x00de: 0x2590, # RIGHT HALF BLOCK
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x0440, # CYRILLIC SMALL LETTER ER
- 0x00e1: 0x0441, # CYRILLIC SMALL LETTER ES
- 0x00e2: 0x0442, # CYRILLIC SMALL LETTER TE
- 0x00e3: 0x0443, # CYRILLIC SMALL LETTER U
- 0x00e4: 0x0444, # CYRILLIC SMALL LETTER EF
- 0x00e5: 0x0445, # CYRILLIC SMALL LETTER HA
- 0x00e6: 0x0446, # CYRILLIC SMALL LETTER TSE
- 0x00e7: 0x0447, # CYRILLIC SMALL LETTER CHE
- 0x00e8: 0x0448, # CYRILLIC SMALL LETTER SHA
- 0x00e9: 0x0449, # CYRILLIC SMALL LETTER SHCHA
- 0x00ea: 0x044a, # CYRILLIC SMALL LETTER HARD SIGN
- 0x00eb: 0x044b, # CYRILLIC SMALL LETTER YERU
- 0x00ec: 0x044c, # CYRILLIC SMALL LETTER SOFT SIGN
- 0x00ed: 0x044d, # CYRILLIC SMALL LETTER E
- 0x00ee: 0x044e, # CYRILLIC SMALL LETTER YU
- 0x00ef: 0x044f, # CYRILLIC SMALL LETTER YA
- 0x00f0: 0x0401, # CYRILLIC CAPITAL LETTER IO
- 0x00f1: 0x0451, # CYRILLIC SMALL LETTER IO
- 0x00f2: 0x0490, # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
- 0x00f3: 0x0491, # CYRILLIC SMALL LETTER GHE WITH UPTURN
- 0x00f4: 0x0404, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
- 0x00f5: 0x0454, # CYRILLIC SMALL LETTER UKRAINIAN IE
- 0x00f6: 0x0406, # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
- 0x00f7: 0x0456, # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
- 0x00f8: 0x0407, # CYRILLIC CAPITAL LETTER YI
- 0x00f9: 0x0457, # CYRILLIC SMALL LETTER YI
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x221a, # SQUARE ROOT
- 0x00fc: 0x2116, # NUMERO SIGN
- 0x00fd: 0x00a4, # CURRENCY SIGN
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\u0410' # 0x0080 -> CYRILLIC CAPITAL LETTER A
- '\u0411' # 0x0081 -> CYRILLIC CAPITAL LETTER BE
- '\u0412' # 0x0082 -> CYRILLIC CAPITAL LETTER VE
- '\u0413' # 0x0083 -> CYRILLIC CAPITAL LETTER GHE
- '\u0414' # 0x0084 -> CYRILLIC CAPITAL LETTER DE
- '\u0415' # 0x0085 -> CYRILLIC CAPITAL LETTER IE
- '\u0416' # 0x0086 -> CYRILLIC CAPITAL LETTER ZHE
- '\u0417' # 0x0087 -> CYRILLIC CAPITAL LETTER ZE
- '\u0418' # 0x0088 -> CYRILLIC CAPITAL LETTER I
- '\u0419' # 0x0089 -> CYRILLIC CAPITAL LETTER SHORT I
- '\u041a' # 0x008a -> CYRILLIC CAPITAL LETTER KA
- '\u041b' # 0x008b -> CYRILLIC CAPITAL LETTER EL
- '\u041c' # 0x008c -> CYRILLIC CAPITAL LETTER EM
- '\u041d' # 0x008d -> CYRILLIC CAPITAL LETTER EN
- '\u041e' # 0x008e -> CYRILLIC CAPITAL LETTER O
- '\u041f' # 0x008f -> CYRILLIC CAPITAL LETTER PE
- '\u0420' # 0x0090 -> CYRILLIC CAPITAL LETTER ER
- '\u0421' # 0x0091 -> CYRILLIC CAPITAL LETTER ES
- '\u0422' # 0x0092 -> CYRILLIC CAPITAL LETTER TE
- '\u0423' # 0x0093 -> CYRILLIC CAPITAL LETTER U
- '\u0424' # 0x0094 -> CYRILLIC CAPITAL LETTER EF
- '\u0425' # 0x0095 -> CYRILLIC CAPITAL LETTER HA
- '\u0426' # 0x0096 -> CYRILLIC CAPITAL LETTER TSE
- '\u0427' # 0x0097 -> CYRILLIC CAPITAL LETTER CHE
- '\u0428' # 0x0098 -> CYRILLIC CAPITAL LETTER SHA
- '\u0429' # 0x0099 -> CYRILLIC CAPITAL LETTER SHCHA
- '\u042a' # 0x009a -> CYRILLIC CAPITAL LETTER HARD SIGN
- '\u042b' # 0x009b -> CYRILLIC CAPITAL LETTER YERU
- '\u042c' # 0x009c -> CYRILLIC CAPITAL LETTER SOFT SIGN
- '\u042d' # 0x009d -> CYRILLIC CAPITAL LETTER E
- '\u042e' # 0x009e -> CYRILLIC CAPITAL LETTER YU
- '\u042f' # 0x009f -> CYRILLIC CAPITAL LETTER YA
- '\u0430' # 0x00a0 -> CYRILLIC SMALL LETTER A
- '\u0431' # 0x00a1 -> CYRILLIC SMALL LETTER BE
- '\u0432' # 0x00a2 -> CYRILLIC SMALL LETTER VE
- '\u0433' # 0x00a3 -> CYRILLIC SMALL LETTER GHE
- '\u0434' # 0x00a4 -> CYRILLIC SMALL LETTER DE
- '\u0435' # 0x00a5 -> CYRILLIC SMALL LETTER IE
- '\u0436' # 0x00a6 -> CYRILLIC SMALL LETTER ZHE
- '\u0437' # 0x00a7 -> CYRILLIC SMALL LETTER ZE
- '\u0438' # 0x00a8 -> CYRILLIC SMALL LETTER I
- '\u0439' # 0x00a9 -> CYRILLIC SMALL LETTER SHORT I
- '\u043a' # 0x00aa -> CYRILLIC SMALL LETTER KA
- '\u043b' # 0x00ab -> CYRILLIC SMALL LETTER EL
- '\u043c' # 0x00ac -> CYRILLIC SMALL LETTER EM
- '\u043d' # 0x00ad -> CYRILLIC SMALL LETTER EN
- '\u043e' # 0x00ae -> CYRILLIC SMALL LETTER O
- '\u043f' # 0x00af -> CYRILLIC SMALL LETTER PE
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u258c' # 0x00dd -> LEFT HALF BLOCK
- '\u2590' # 0x00de -> RIGHT HALF BLOCK
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\u0440' # 0x00e0 -> CYRILLIC SMALL LETTER ER
- '\u0441' # 0x00e1 -> CYRILLIC SMALL LETTER ES
- '\u0442' # 0x00e2 -> CYRILLIC SMALL LETTER TE
- '\u0443' # 0x00e3 -> CYRILLIC SMALL LETTER U
- '\u0444' # 0x00e4 -> CYRILLIC SMALL LETTER EF
- '\u0445' # 0x00e5 -> CYRILLIC SMALL LETTER HA
- '\u0446' # 0x00e6 -> CYRILLIC SMALL LETTER TSE
- '\u0447' # 0x00e7 -> CYRILLIC SMALL LETTER CHE
- '\u0448' # 0x00e8 -> CYRILLIC SMALL LETTER SHA
- '\u0449' # 0x00e9 -> CYRILLIC SMALL LETTER SHCHA
- '\u044a' # 0x00ea -> CYRILLIC SMALL LETTER HARD SIGN
- '\u044b' # 0x00eb -> CYRILLIC SMALL LETTER YERU
- '\u044c' # 0x00ec -> CYRILLIC SMALL LETTER SOFT SIGN
- '\u044d' # 0x00ed -> CYRILLIC SMALL LETTER E
- '\u044e' # 0x00ee -> CYRILLIC SMALL LETTER YU
- '\u044f' # 0x00ef -> CYRILLIC SMALL LETTER YA
- '\u0401' # 0x00f0 -> CYRILLIC CAPITAL LETTER IO
- '\u0451' # 0x00f1 -> CYRILLIC SMALL LETTER IO
- '\u0490' # 0x00f2 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
- '\u0491' # 0x00f3 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
- '\u0404' # 0x00f4 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
- '\u0454' # 0x00f5 -> CYRILLIC SMALL LETTER UKRAINIAN IE
- '\u0406' # 0x00f6 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
- '\u0456' # 0x00f7 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
- '\u0407' # 0x00f8 -> CYRILLIC CAPITAL LETTER YI
- '\u0457' # 0x00f9 -> CYRILLIC SMALL LETTER YI
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\u221a' # 0x00fb -> SQUARE ROOT
- '\u2116' # 0x00fc -> NUMERO SIGN
- '\xa4' # 0x00fd -> CURRENCY SIGN
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a4: 0x00fd, # CURRENCY SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x0401: 0x00f0, # CYRILLIC CAPITAL LETTER IO
- 0x0404: 0x00f4, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
- 0x0406: 0x00f6, # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
- 0x0407: 0x00f8, # CYRILLIC CAPITAL LETTER YI
- 0x0410: 0x0080, # CYRILLIC CAPITAL LETTER A
- 0x0411: 0x0081, # CYRILLIC CAPITAL LETTER BE
- 0x0412: 0x0082, # CYRILLIC CAPITAL LETTER VE
- 0x0413: 0x0083, # CYRILLIC CAPITAL LETTER GHE
- 0x0414: 0x0084, # CYRILLIC CAPITAL LETTER DE
- 0x0415: 0x0085, # CYRILLIC CAPITAL LETTER IE
- 0x0416: 0x0086, # CYRILLIC CAPITAL LETTER ZHE
- 0x0417: 0x0087, # CYRILLIC CAPITAL LETTER ZE
- 0x0418: 0x0088, # CYRILLIC CAPITAL LETTER I
- 0x0419: 0x0089, # CYRILLIC CAPITAL LETTER SHORT I
- 0x041a: 0x008a, # CYRILLIC CAPITAL LETTER KA
- 0x041b: 0x008b, # CYRILLIC CAPITAL LETTER EL
- 0x041c: 0x008c, # CYRILLIC CAPITAL LETTER EM
- 0x041d: 0x008d, # CYRILLIC CAPITAL LETTER EN
- 0x041e: 0x008e, # CYRILLIC CAPITAL LETTER O
- 0x041f: 0x008f, # CYRILLIC CAPITAL LETTER PE
- 0x0420: 0x0090, # CYRILLIC CAPITAL LETTER ER
- 0x0421: 0x0091, # CYRILLIC CAPITAL LETTER ES
- 0x0422: 0x0092, # CYRILLIC CAPITAL LETTER TE
- 0x0423: 0x0093, # CYRILLIC CAPITAL LETTER U
- 0x0424: 0x0094, # CYRILLIC CAPITAL LETTER EF
- 0x0425: 0x0095, # CYRILLIC CAPITAL LETTER HA
- 0x0426: 0x0096, # CYRILLIC CAPITAL LETTER TSE
- 0x0427: 0x0097, # CYRILLIC CAPITAL LETTER CHE
- 0x0428: 0x0098, # CYRILLIC CAPITAL LETTER SHA
- 0x0429: 0x0099, # CYRILLIC CAPITAL LETTER SHCHA
- 0x042a: 0x009a, # CYRILLIC CAPITAL LETTER HARD SIGN
- 0x042b: 0x009b, # CYRILLIC CAPITAL LETTER YERU
- 0x042c: 0x009c, # CYRILLIC CAPITAL LETTER SOFT SIGN
- 0x042d: 0x009d, # CYRILLIC CAPITAL LETTER E
- 0x042e: 0x009e, # CYRILLIC CAPITAL LETTER YU
- 0x042f: 0x009f, # CYRILLIC CAPITAL LETTER YA
- 0x0430: 0x00a0, # CYRILLIC SMALL LETTER A
- 0x0431: 0x00a1, # CYRILLIC SMALL LETTER BE
- 0x0432: 0x00a2, # CYRILLIC SMALL LETTER VE
- 0x0433: 0x00a3, # CYRILLIC SMALL LETTER GHE
- 0x0434: 0x00a4, # CYRILLIC SMALL LETTER DE
- 0x0435: 0x00a5, # CYRILLIC SMALL LETTER IE
- 0x0436: 0x00a6, # CYRILLIC SMALL LETTER ZHE
- 0x0437: 0x00a7, # CYRILLIC SMALL LETTER ZE
- 0x0438: 0x00a8, # CYRILLIC SMALL LETTER I
- 0x0439: 0x00a9, # CYRILLIC SMALL LETTER SHORT I
- 0x043a: 0x00aa, # CYRILLIC SMALL LETTER KA
- 0x043b: 0x00ab, # CYRILLIC SMALL LETTER EL
- 0x043c: 0x00ac, # CYRILLIC SMALL LETTER EM
- 0x043d: 0x00ad, # CYRILLIC SMALL LETTER EN
- 0x043e: 0x00ae, # CYRILLIC SMALL LETTER O
- 0x043f: 0x00af, # CYRILLIC SMALL LETTER PE
- 0x0440: 0x00e0, # CYRILLIC SMALL LETTER ER
- 0x0441: 0x00e1, # CYRILLIC SMALL LETTER ES
- 0x0442: 0x00e2, # CYRILLIC SMALL LETTER TE
- 0x0443: 0x00e3, # CYRILLIC SMALL LETTER U
- 0x0444: 0x00e4, # CYRILLIC SMALL LETTER EF
- 0x0445: 0x00e5, # CYRILLIC SMALL LETTER HA
- 0x0446: 0x00e6, # CYRILLIC SMALL LETTER TSE
- 0x0447: 0x00e7, # CYRILLIC SMALL LETTER CHE
- 0x0448: 0x00e8, # CYRILLIC SMALL LETTER SHA
- 0x0449: 0x00e9, # CYRILLIC SMALL LETTER SHCHA
- 0x044a: 0x00ea, # CYRILLIC SMALL LETTER HARD SIGN
- 0x044b: 0x00eb, # CYRILLIC SMALL LETTER YERU
- 0x044c: 0x00ec, # CYRILLIC SMALL LETTER SOFT SIGN
- 0x044d: 0x00ed, # CYRILLIC SMALL LETTER E
- 0x044e: 0x00ee, # CYRILLIC SMALL LETTER YU
- 0x044f: 0x00ef, # CYRILLIC SMALL LETTER YA
- 0x0451: 0x00f1, # CYRILLIC SMALL LETTER IO
- 0x0454: 0x00f5, # CYRILLIC SMALL LETTER UKRAINIAN IE
- 0x0456: 0x00f7, # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
- 0x0457: 0x00f9, # CYRILLIC SMALL LETTER YI
- 0x0490: 0x00f2, # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
- 0x0491: 0x00f3, # CYRILLIC SMALL LETTER GHE WITH UPTURN
- 0x2116: 0x00fc, # NUMERO SIGN
- 0x221a: 0x00fb, # SQUARE ROOT
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x258c: 0x00dd, # LEFT HALF BLOCK
- 0x2590: 0x00de, # RIGHT HALF BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp1140.py b/EasyTrans/Lib/encodings/cp1140.py
deleted file mode 100644
index 0a919d83..00000000
--- a/EasyTrans/Lib/encodings/cp1140.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1140 generated from 'python-mappings/CP1140.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1140',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x9c' # 0x04 -> CONTROL
- '\t' # 0x05 -> HORIZONTAL TABULATION
- '\x86' # 0x06 -> CONTROL
- '\x7f' # 0x07 -> DELETE
- '\x97' # 0x08 -> CONTROL
- '\x8d' # 0x09 -> CONTROL
- '\x8e' # 0x0A -> CONTROL
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x9d' # 0x14 -> CONTROL
- '\x85' # 0x15 -> CONTROL
- '\x08' # 0x16 -> BACKSPACE
- '\x87' # 0x17 -> CONTROL
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x92' # 0x1A -> CONTROL
- '\x8f' # 0x1B -> CONTROL
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- '\x80' # 0x20 -> CONTROL
- '\x81' # 0x21 -> CONTROL
- '\x82' # 0x22 -> CONTROL
- '\x83' # 0x23 -> CONTROL
- '\x84' # 0x24 -> CONTROL
- '\n' # 0x25 -> LINE FEED
- '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
- '\x1b' # 0x27 -> ESCAPE
- '\x88' # 0x28 -> CONTROL
- '\x89' # 0x29 -> CONTROL
- '\x8a' # 0x2A -> CONTROL
- '\x8b' # 0x2B -> CONTROL
- '\x8c' # 0x2C -> CONTROL
- '\x05' # 0x2D -> ENQUIRY
- '\x06' # 0x2E -> ACKNOWLEDGE
- '\x07' # 0x2F -> BELL
- '\x90' # 0x30 -> CONTROL
- '\x91' # 0x31 -> CONTROL
- '\x16' # 0x32 -> SYNCHRONOUS IDLE
- '\x93' # 0x33 -> CONTROL
- '\x94' # 0x34 -> CONTROL
- '\x95' # 0x35 -> CONTROL
- '\x96' # 0x36 -> CONTROL
- '\x04' # 0x37 -> END OF TRANSMISSION
- '\x98' # 0x38 -> CONTROL
- '\x99' # 0x39 -> CONTROL
- '\x9a' # 0x3A -> CONTROL
- '\x9b' # 0x3B -> CONTROL
- '\x14' # 0x3C -> DEVICE CONTROL FOUR
- '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
- '\x9e' # 0x3E -> CONTROL
- '\x1a' # 0x3F -> SUBSTITUTE
- ' ' # 0x40 -> SPACE
- '\xa0' # 0x41 -> NO-BREAK SPACE
- '\xe2' # 0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe4' # 0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe0' # 0x44 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe1' # 0x45 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe3' # 0x46 -> LATIN SMALL LETTER A WITH TILDE
- '\xe5' # 0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe7' # 0x48 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xf1' # 0x49 -> LATIN SMALL LETTER N WITH TILDE
- '\xa2' # 0x4A -> CENT SIGN
- '.' # 0x4B -> FULL STOP
- '<' # 0x4C -> LESS-THAN SIGN
- '(' # 0x4D -> LEFT PARENTHESIS
- '+' # 0x4E -> PLUS SIGN
- '|' # 0x4F -> VERTICAL LINE
- '&' # 0x50 -> AMPERSAND
- '\xe9' # 0x51 -> LATIN SMALL LETTER E WITH ACUTE
- '\xea' # 0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x54 -> LATIN SMALL LETTER E WITH GRAVE
- '\xed' # 0x55 -> LATIN SMALL LETTER I WITH ACUTE
- '\xee' # 0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xef' # 0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xec' # 0x58 -> LATIN SMALL LETTER I WITH GRAVE
- '\xdf' # 0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
- '!' # 0x5A -> EXCLAMATION MARK
- '$' # 0x5B -> DOLLAR SIGN
- '*' # 0x5C -> ASTERISK
- ')' # 0x5D -> RIGHT PARENTHESIS
- ';' # 0x5E -> SEMICOLON
- '\xac' # 0x5F -> NOT SIGN
- '-' # 0x60 -> HYPHEN-MINUS
- '/' # 0x61 -> SOLIDUS
- '\xc2' # 0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc4' # 0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc0' # 0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xc1' # 0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc3' # 0x66 -> LATIN CAPITAL LETTER A WITH TILDE
- '\xc5' # 0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc7' # 0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xd1' # 0x69 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xa6' # 0x6A -> BROKEN BAR
- ',' # 0x6B -> COMMA
- '%' # 0x6C -> PERCENT SIGN
- '_' # 0x6D -> LOW LINE
- '>' # 0x6E -> GREATER-THAN SIGN
- '?' # 0x6F -> QUESTION MARK
- '\xf8' # 0x70 -> LATIN SMALL LETTER O WITH STROKE
- '\xc9' # 0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xca' # 0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xc8' # 0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xcd' # 0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\xcc' # 0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
- '`' # 0x79 -> GRAVE ACCENT
- ':' # 0x7A -> COLON
- '#' # 0x7B -> NUMBER SIGN
- '@' # 0x7C -> COMMERCIAL AT
- "'" # 0x7D -> APOSTROPHE
- '=' # 0x7E -> EQUALS SIGN
- '"' # 0x7F -> QUOTATION MARK
- '\xd8' # 0x80 -> LATIN CAPITAL LETTER O WITH STROKE
- 'a' # 0x81 -> LATIN SMALL LETTER A
- 'b' # 0x82 -> LATIN SMALL LETTER B
- 'c' # 0x83 -> LATIN SMALL LETTER C
- 'd' # 0x84 -> LATIN SMALL LETTER D
- 'e' # 0x85 -> LATIN SMALL LETTER E
- 'f' # 0x86 -> LATIN SMALL LETTER F
- 'g' # 0x87 -> LATIN SMALL LETTER G
- 'h' # 0x88 -> LATIN SMALL LETTER H
- 'i' # 0x89 -> LATIN SMALL LETTER I
- '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xf0' # 0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
- '\xfd' # 0x8D -> LATIN SMALL LETTER Y WITH ACUTE
- '\xfe' # 0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
- '\xb1' # 0x8F -> PLUS-MINUS SIGN
- '\xb0' # 0x90 -> DEGREE SIGN
- 'j' # 0x91 -> LATIN SMALL LETTER J
- 'k' # 0x92 -> LATIN SMALL LETTER K
- 'l' # 0x93 -> LATIN SMALL LETTER L
- 'm' # 0x94 -> LATIN SMALL LETTER M
- 'n' # 0x95 -> LATIN SMALL LETTER N
- 'o' # 0x96 -> LATIN SMALL LETTER O
- 'p' # 0x97 -> LATIN SMALL LETTER P
- 'q' # 0x98 -> LATIN SMALL LETTER Q
- 'r' # 0x99 -> LATIN SMALL LETTER R
- '\xaa' # 0x9A -> FEMININE ORDINAL INDICATOR
- '\xba' # 0x9B -> MASCULINE ORDINAL INDICATOR
- '\xe6' # 0x9C -> LATIN SMALL LIGATURE AE
- '\xb8' # 0x9D -> CEDILLA
- '\xc6' # 0x9E -> LATIN CAPITAL LIGATURE AE
- '\u20ac' # 0x9F -> EURO SIGN
- '\xb5' # 0xA0 -> MICRO SIGN
- '~' # 0xA1 -> TILDE
- 's' # 0xA2 -> LATIN SMALL LETTER S
- 't' # 0xA3 -> LATIN SMALL LETTER T
- 'u' # 0xA4 -> LATIN SMALL LETTER U
- 'v' # 0xA5 -> LATIN SMALL LETTER V
- 'w' # 0xA6 -> LATIN SMALL LETTER W
- 'x' # 0xA7 -> LATIN SMALL LETTER X
- 'y' # 0xA8 -> LATIN SMALL LETTER Y
- 'z' # 0xA9 -> LATIN SMALL LETTER Z
- '\xa1' # 0xAA -> INVERTED EXCLAMATION MARK
- '\xbf' # 0xAB -> INVERTED QUESTION MARK
- '\xd0' # 0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
- '\xdd' # 0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\xde' # 0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
- '\xae' # 0xAF -> REGISTERED SIGN
- '^' # 0xB0 -> CIRCUMFLEX ACCENT
- '\xa3' # 0xB1 -> POUND SIGN
- '\xa5' # 0xB2 -> YEN SIGN
- '\xb7' # 0xB3 -> MIDDLE DOT
- '\xa9' # 0xB4 -> COPYRIGHT SIGN
- '\xa7' # 0xB5 -> SECTION SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
- '[' # 0xBA -> LEFT SQUARE BRACKET
- ']' # 0xBB -> RIGHT SQUARE BRACKET
- '\xaf' # 0xBC -> MACRON
- '\xa8' # 0xBD -> DIAERESIS
- '\xb4' # 0xBE -> ACUTE ACCENT
- '\xd7' # 0xBF -> MULTIPLICATION SIGN
- '{' # 0xC0 -> LEFT CURLY BRACKET
- 'A' # 0xC1 -> LATIN CAPITAL LETTER A
- 'B' # 0xC2 -> LATIN CAPITAL LETTER B
- 'C' # 0xC3 -> LATIN CAPITAL LETTER C
- 'D' # 0xC4 -> LATIN CAPITAL LETTER D
- 'E' # 0xC5 -> LATIN CAPITAL LETTER E
- 'F' # 0xC6 -> LATIN CAPITAL LETTER F
- 'G' # 0xC7 -> LATIN CAPITAL LETTER G
- 'H' # 0xC8 -> LATIN CAPITAL LETTER H
- 'I' # 0xC9 -> LATIN CAPITAL LETTER I
- '\xad' # 0xCA -> SOFT HYPHEN
- '\xf4' # 0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf6' # 0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf2' # 0xCD -> LATIN SMALL LETTER O WITH GRAVE
- '\xf3' # 0xCE -> LATIN SMALL LETTER O WITH ACUTE
- '\xf5' # 0xCF -> LATIN SMALL LETTER O WITH TILDE
- '}' # 0xD0 -> RIGHT CURLY BRACKET
- 'J' # 0xD1 -> LATIN CAPITAL LETTER J
- 'K' # 0xD2 -> LATIN CAPITAL LETTER K
- 'L' # 0xD3 -> LATIN CAPITAL LETTER L
- 'M' # 0xD4 -> LATIN CAPITAL LETTER M
- 'N' # 0xD5 -> LATIN CAPITAL LETTER N
- 'O' # 0xD6 -> LATIN CAPITAL LETTER O
- 'P' # 0xD7 -> LATIN CAPITAL LETTER P
- 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
- 'R' # 0xD9 -> LATIN CAPITAL LETTER R
- '\xb9' # 0xDA -> SUPERSCRIPT ONE
- '\xfb' # 0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xfc' # 0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xf9' # 0xDD -> LATIN SMALL LETTER U WITH GRAVE
- '\xfa' # 0xDE -> LATIN SMALL LETTER U WITH ACUTE
- '\xff' # 0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
- '\\' # 0xE0 -> REVERSE SOLIDUS
- '\xf7' # 0xE1 -> DIVISION SIGN
- 'S' # 0xE2 -> LATIN CAPITAL LETTER S
- 'T' # 0xE3 -> LATIN CAPITAL LETTER T
- 'U' # 0xE4 -> LATIN CAPITAL LETTER U
- 'V' # 0xE5 -> LATIN CAPITAL LETTER V
- 'W' # 0xE6 -> LATIN CAPITAL LETTER W
- 'X' # 0xE7 -> LATIN CAPITAL LETTER X
- 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
- 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
- '\xb2' # 0xEA -> SUPERSCRIPT TWO
- '\xd4' # 0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xd6' # 0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xd2' # 0xED -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd5' # 0xEF -> LATIN CAPITAL LETTER O WITH TILDE
- '0' # 0xF0 -> DIGIT ZERO
- '1' # 0xF1 -> DIGIT ONE
- '2' # 0xF2 -> DIGIT TWO
- '3' # 0xF3 -> DIGIT THREE
- '4' # 0xF4 -> DIGIT FOUR
- '5' # 0xF5 -> DIGIT FIVE
- '6' # 0xF6 -> DIGIT SIX
- '7' # 0xF7 -> DIGIT SEVEN
- '8' # 0xF8 -> DIGIT EIGHT
- '9' # 0xF9 -> DIGIT NINE
- '\xb3' # 0xFA -> SUPERSCRIPT THREE
- '\xdb' # 0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\xdc' # 0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xd9' # 0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xda' # 0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
- '\x9f' # 0xFF -> CONTROL
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1250.py b/EasyTrans/Lib/encodings/cp1250.py
deleted file mode 100644
index c2c83aaf..00000000
--- a/EasyTrans/Lib/encodings/cp1250.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1250 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1250.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1250',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\u20ac' # 0x80 -> EURO SIGN
- '\ufffe' # 0x81 -> UNDEFINED
- '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
- '\ufffe' # 0x83 -> UNDEFINED
- '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
- '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
- '\u2020' # 0x86 -> DAGGER
- '\u2021' # 0x87 -> DOUBLE DAGGER
- '\ufffe' # 0x88 -> UNDEFINED
- '\u2030' # 0x89 -> PER MILLE SIGN
- '\u0160' # 0x8A -> LATIN CAPITAL LETTER S WITH CARON
- '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- '\u015a' # 0x8C -> LATIN CAPITAL LETTER S WITH ACUTE
- '\u0164' # 0x8D -> LATIN CAPITAL LETTER T WITH CARON
- '\u017d' # 0x8E -> LATIN CAPITAL LETTER Z WITH CARON
- '\u0179' # 0x8F -> LATIN CAPITAL LETTER Z WITH ACUTE
- '\ufffe' # 0x90 -> UNDEFINED
- '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
- '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
- '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
- '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
- '\u2022' # 0x95 -> BULLET
- '\u2013' # 0x96 -> EN DASH
- '\u2014' # 0x97 -> EM DASH
- '\ufffe' # 0x98 -> UNDEFINED
- '\u2122' # 0x99 -> TRADE MARK SIGN
- '\u0161' # 0x9A -> LATIN SMALL LETTER S WITH CARON
- '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- '\u015b' # 0x9C -> LATIN SMALL LETTER S WITH ACUTE
- '\u0165' # 0x9D -> LATIN SMALL LETTER T WITH CARON
- '\u017e' # 0x9E -> LATIN SMALL LETTER Z WITH CARON
- '\u017a' # 0x9F -> LATIN SMALL LETTER Z WITH ACUTE
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\u02c7' # 0xA1 -> CARON
- '\u02d8' # 0xA2 -> BREVE
- '\u0141' # 0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
- '\xa4' # 0xA4 -> CURRENCY SIGN
- '\u0104' # 0xA5 -> LATIN CAPITAL LETTER A WITH OGONEK
- '\xa6' # 0xA6 -> BROKEN BAR
- '\xa7' # 0xA7 -> SECTION SIGN
- '\xa8' # 0xA8 -> DIAERESIS
- '\xa9' # 0xA9 -> COPYRIGHT SIGN
- '\u015e' # 0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
- '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xac' # 0xAC -> NOT SIGN
- '\xad' # 0xAD -> SOFT HYPHEN
- '\xae' # 0xAE -> REGISTERED SIGN
- '\u017b' # 0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
- '\xb0' # 0xB0 -> DEGREE SIGN
- '\xb1' # 0xB1 -> PLUS-MINUS SIGN
- '\u02db' # 0xB2 -> OGONEK
- '\u0142' # 0xB3 -> LATIN SMALL LETTER L WITH STROKE
- '\xb4' # 0xB4 -> ACUTE ACCENT
- '\xb5' # 0xB5 -> MICRO SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xb7' # 0xB7 -> MIDDLE DOT
- '\xb8' # 0xB8 -> CEDILLA
- '\u0105' # 0xB9 -> LATIN SMALL LETTER A WITH OGONEK
- '\u015f' # 0xBA -> LATIN SMALL LETTER S WITH CEDILLA
- '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u013d' # 0xBC -> LATIN CAPITAL LETTER L WITH CARON
- '\u02dd' # 0xBD -> DOUBLE ACUTE ACCENT
- '\u013e' # 0xBE -> LATIN SMALL LETTER L WITH CARON
- '\u017c' # 0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
- '\u0154' # 0xC0 -> LATIN CAPITAL LETTER R WITH ACUTE
- '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\u0102' # 0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
- '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\u0139' # 0xC5 -> LATIN CAPITAL LETTER L WITH ACUTE
- '\u0106' # 0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
- '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\u010c' # 0xC8 -> LATIN CAPITAL LETTER C WITH CARON
- '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\u0118' # 0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
- '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\u011a' # 0xCC -> LATIN CAPITAL LETTER E WITH CARON
- '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\u010e' # 0xCF -> LATIN CAPITAL LETTER D WITH CARON
- '\u0110' # 0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
- '\u0143' # 0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
- '\u0147' # 0xD2 -> LATIN CAPITAL LETTER N WITH CARON
- '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\u0150' # 0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
- '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xd7' # 0xD7 -> MULTIPLICATION SIGN
- '\u0158' # 0xD8 -> LATIN CAPITAL LETTER R WITH CARON
- '\u016e' # 0xD9 -> LATIN CAPITAL LETTER U WITH RING ABOVE
- '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
- '\u0170' # 0xDB -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
- '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xdd' # 0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\u0162' # 0xDE -> LATIN CAPITAL LETTER T WITH CEDILLA
- '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
- '\u0155' # 0xE0 -> LATIN SMALL LETTER R WITH ACUTE
- '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\u0103' # 0xE3 -> LATIN SMALL LETTER A WITH BREVE
- '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\u013a' # 0xE5 -> LATIN SMALL LETTER L WITH ACUTE
- '\u0107' # 0xE6 -> LATIN SMALL LETTER C WITH ACUTE
- '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
- '\u010d' # 0xE8 -> LATIN SMALL LETTER C WITH CARON
- '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
- '\u0119' # 0xEA -> LATIN SMALL LETTER E WITH OGONEK
- '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
- '\u011b' # 0xEC -> LATIN SMALL LETTER E WITH CARON
- '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
- '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\u010f' # 0xEF -> LATIN SMALL LETTER D WITH CARON
- '\u0111' # 0xF0 -> LATIN SMALL LETTER D WITH STROKE
- '\u0144' # 0xF1 -> LATIN SMALL LETTER N WITH ACUTE
- '\u0148' # 0xF2 -> LATIN SMALL LETTER N WITH CARON
- '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
- '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\u0151' # 0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
- '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf7' # 0xF7 -> DIVISION SIGN
- '\u0159' # 0xF8 -> LATIN SMALL LETTER R WITH CARON
- '\u016f' # 0xF9 -> LATIN SMALL LETTER U WITH RING ABOVE
- '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
- '\u0171' # 0xFB -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
- '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xfd' # 0xFD -> LATIN SMALL LETTER Y WITH ACUTE
- '\u0163' # 0xFE -> LATIN SMALL LETTER T WITH CEDILLA
- '\u02d9' # 0xFF -> DOT ABOVE
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1251.py b/EasyTrans/Lib/encodings/cp1251.py
deleted file mode 100644
index 22bc6600..00000000
--- a/EasyTrans/Lib/encodings/cp1251.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1251 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1251',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\u0402' # 0x80 -> CYRILLIC CAPITAL LETTER DJE
- '\u0403' # 0x81 -> CYRILLIC CAPITAL LETTER GJE
- '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
- '\u0453' # 0x83 -> CYRILLIC SMALL LETTER GJE
- '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
- '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
- '\u2020' # 0x86 -> DAGGER
- '\u2021' # 0x87 -> DOUBLE DAGGER
- '\u20ac' # 0x88 -> EURO SIGN
- '\u2030' # 0x89 -> PER MILLE SIGN
- '\u0409' # 0x8A -> CYRILLIC CAPITAL LETTER LJE
- '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- '\u040a' # 0x8C -> CYRILLIC CAPITAL LETTER NJE
- '\u040c' # 0x8D -> CYRILLIC CAPITAL LETTER KJE
- '\u040b' # 0x8E -> CYRILLIC CAPITAL LETTER TSHE
- '\u040f' # 0x8F -> CYRILLIC CAPITAL LETTER DZHE
- '\u0452' # 0x90 -> CYRILLIC SMALL LETTER DJE
- '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
- '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
- '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
- '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
- '\u2022' # 0x95 -> BULLET
- '\u2013' # 0x96 -> EN DASH
- '\u2014' # 0x97 -> EM DASH
- '\ufffe' # 0x98 -> UNDEFINED
- '\u2122' # 0x99 -> TRADE MARK SIGN
- '\u0459' # 0x9A -> CYRILLIC SMALL LETTER LJE
- '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- '\u045a' # 0x9C -> CYRILLIC SMALL LETTER NJE
- '\u045c' # 0x9D -> CYRILLIC SMALL LETTER KJE
- '\u045b' # 0x9E -> CYRILLIC SMALL LETTER TSHE
- '\u045f' # 0x9F -> CYRILLIC SMALL LETTER DZHE
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\u040e' # 0xA1 -> CYRILLIC CAPITAL LETTER SHORT U
- '\u045e' # 0xA2 -> CYRILLIC SMALL LETTER SHORT U
- '\u0408' # 0xA3 -> CYRILLIC CAPITAL LETTER JE
- '\xa4' # 0xA4 -> CURRENCY SIGN
- '\u0490' # 0xA5 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
- '\xa6' # 0xA6 -> BROKEN BAR
- '\xa7' # 0xA7 -> SECTION SIGN
- '\u0401' # 0xA8 -> CYRILLIC CAPITAL LETTER IO
- '\xa9' # 0xA9 -> COPYRIGHT SIGN
- '\u0404' # 0xAA -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
- '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xac' # 0xAC -> NOT SIGN
- '\xad' # 0xAD -> SOFT HYPHEN
- '\xae' # 0xAE -> REGISTERED SIGN
- '\u0407' # 0xAF -> CYRILLIC CAPITAL LETTER YI
- '\xb0' # 0xB0 -> DEGREE SIGN
- '\xb1' # 0xB1 -> PLUS-MINUS SIGN
- '\u0406' # 0xB2 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
- '\u0456' # 0xB3 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
- '\u0491' # 0xB4 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
- '\xb5' # 0xB5 -> MICRO SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xb7' # 0xB7 -> MIDDLE DOT
- '\u0451' # 0xB8 -> CYRILLIC SMALL LETTER IO
- '\u2116' # 0xB9 -> NUMERO SIGN
- '\u0454' # 0xBA -> CYRILLIC SMALL LETTER UKRAINIAN IE
- '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u0458' # 0xBC -> CYRILLIC SMALL LETTER JE
- '\u0405' # 0xBD -> CYRILLIC CAPITAL LETTER DZE
- '\u0455' # 0xBE -> CYRILLIC SMALL LETTER DZE
- '\u0457' # 0xBF -> CYRILLIC SMALL LETTER YI
- '\u0410' # 0xC0 -> CYRILLIC CAPITAL LETTER A
- '\u0411' # 0xC1 -> CYRILLIC CAPITAL LETTER BE
- '\u0412' # 0xC2 -> CYRILLIC CAPITAL LETTER VE
- '\u0413' # 0xC3 -> CYRILLIC CAPITAL LETTER GHE
- '\u0414' # 0xC4 -> CYRILLIC CAPITAL LETTER DE
- '\u0415' # 0xC5 -> CYRILLIC CAPITAL LETTER IE
- '\u0416' # 0xC6 -> CYRILLIC CAPITAL LETTER ZHE
- '\u0417' # 0xC7 -> CYRILLIC CAPITAL LETTER ZE
- '\u0418' # 0xC8 -> CYRILLIC CAPITAL LETTER I
- '\u0419' # 0xC9 -> CYRILLIC CAPITAL LETTER SHORT I
- '\u041a' # 0xCA -> CYRILLIC CAPITAL LETTER KA
- '\u041b' # 0xCB -> CYRILLIC CAPITAL LETTER EL
- '\u041c' # 0xCC -> CYRILLIC CAPITAL LETTER EM
- '\u041d' # 0xCD -> CYRILLIC CAPITAL LETTER EN
- '\u041e' # 0xCE -> CYRILLIC CAPITAL LETTER O
- '\u041f' # 0xCF -> CYRILLIC CAPITAL LETTER PE
- '\u0420' # 0xD0 -> CYRILLIC CAPITAL LETTER ER
- '\u0421' # 0xD1 -> CYRILLIC CAPITAL LETTER ES
- '\u0422' # 0xD2 -> CYRILLIC CAPITAL LETTER TE
- '\u0423' # 0xD3 -> CYRILLIC CAPITAL LETTER U
- '\u0424' # 0xD4 -> CYRILLIC CAPITAL LETTER EF
- '\u0425' # 0xD5 -> CYRILLIC CAPITAL LETTER HA
- '\u0426' # 0xD6 -> CYRILLIC CAPITAL LETTER TSE
- '\u0427' # 0xD7 -> CYRILLIC CAPITAL LETTER CHE
- '\u0428' # 0xD8 -> CYRILLIC CAPITAL LETTER SHA
- '\u0429' # 0xD9 -> CYRILLIC CAPITAL LETTER SHCHA
- '\u042a' # 0xDA -> CYRILLIC CAPITAL LETTER HARD SIGN
- '\u042b' # 0xDB -> CYRILLIC CAPITAL LETTER YERU
- '\u042c' # 0xDC -> CYRILLIC CAPITAL LETTER SOFT SIGN
- '\u042d' # 0xDD -> CYRILLIC CAPITAL LETTER E
- '\u042e' # 0xDE -> CYRILLIC CAPITAL LETTER YU
- '\u042f' # 0xDF -> CYRILLIC CAPITAL LETTER YA
- '\u0430' # 0xE0 -> CYRILLIC SMALL LETTER A
- '\u0431' # 0xE1 -> CYRILLIC SMALL LETTER BE
- '\u0432' # 0xE2 -> CYRILLIC SMALL LETTER VE
- '\u0433' # 0xE3 -> CYRILLIC SMALL LETTER GHE
- '\u0434' # 0xE4 -> CYRILLIC SMALL LETTER DE
- '\u0435' # 0xE5 -> CYRILLIC SMALL LETTER IE
- '\u0436' # 0xE6 -> CYRILLIC SMALL LETTER ZHE
- '\u0437' # 0xE7 -> CYRILLIC SMALL LETTER ZE
- '\u0438' # 0xE8 -> CYRILLIC SMALL LETTER I
- '\u0439' # 0xE9 -> CYRILLIC SMALL LETTER SHORT I
- '\u043a' # 0xEA -> CYRILLIC SMALL LETTER KA
- '\u043b' # 0xEB -> CYRILLIC SMALL LETTER EL
- '\u043c' # 0xEC -> CYRILLIC SMALL LETTER EM
- '\u043d' # 0xED -> CYRILLIC SMALL LETTER EN
- '\u043e' # 0xEE -> CYRILLIC SMALL LETTER O
- '\u043f' # 0xEF -> CYRILLIC SMALL LETTER PE
- '\u0440' # 0xF0 -> CYRILLIC SMALL LETTER ER
- '\u0441' # 0xF1 -> CYRILLIC SMALL LETTER ES
- '\u0442' # 0xF2 -> CYRILLIC SMALL LETTER TE
- '\u0443' # 0xF3 -> CYRILLIC SMALL LETTER U
- '\u0444' # 0xF4 -> CYRILLIC SMALL LETTER EF
- '\u0445' # 0xF5 -> CYRILLIC SMALL LETTER HA
- '\u0446' # 0xF6 -> CYRILLIC SMALL LETTER TSE
- '\u0447' # 0xF7 -> CYRILLIC SMALL LETTER CHE
- '\u0448' # 0xF8 -> CYRILLIC SMALL LETTER SHA
- '\u0449' # 0xF9 -> CYRILLIC SMALL LETTER SHCHA
- '\u044a' # 0xFA -> CYRILLIC SMALL LETTER HARD SIGN
- '\u044b' # 0xFB -> CYRILLIC SMALL LETTER YERU
- '\u044c' # 0xFC -> CYRILLIC SMALL LETTER SOFT SIGN
- '\u044d' # 0xFD -> CYRILLIC SMALL LETTER E
- '\u044e' # 0xFE -> CYRILLIC SMALL LETTER YU
- '\u044f' # 0xFF -> CYRILLIC SMALL LETTER YA
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1252.py b/EasyTrans/Lib/encodings/cp1252.py
deleted file mode 100644
index c0e8088e..00000000
--- a/EasyTrans/Lib/encodings/cp1252.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1252 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1252',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\u20ac' # 0x80 -> EURO SIGN
- '\ufffe' # 0x81 -> UNDEFINED
- '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
- '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
- '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
- '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
- '\u2020' # 0x86 -> DAGGER
- '\u2021' # 0x87 -> DOUBLE DAGGER
- '\u02c6' # 0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
- '\u2030' # 0x89 -> PER MILLE SIGN
- '\u0160' # 0x8A -> LATIN CAPITAL LETTER S WITH CARON
- '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- '\u0152' # 0x8C -> LATIN CAPITAL LIGATURE OE
- '\ufffe' # 0x8D -> UNDEFINED
- '\u017d' # 0x8E -> LATIN CAPITAL LETTER Z WITH CARON
- '\ufffe' # 0x8F -> UNDEFINED
- '\ufffe' # 0x90 -> UNDEFINED
- '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
- '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
- '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
- '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
- '\u2022' # 0x95 -> BULLET
- '\u2013' # 0x96 -> EN DASH
- '\u2014' # 0x97 -> EM DASH
- '\u02dc' # 0x98 -> SMALL TILDE
- '\u2122' # 0x99 -> TRADE MARK SIGN
- '\u0161' # 0x9A -> LATIN SMALL LETTER S WITH CARON
- '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- '\u0153' # 0x9C -> LATIN SMALL LIGATURE OE
- '\ufffe' # 0x9D -> UNDEFINED
- '\u017e' # 0x9E -> LATIN SMALL LETTER Z WITH CARON
- '\u0178' # 0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\xa1' # 0xA1 -> INVERTED EXCLAMATION MARK
- '\xa2' # 0xA2 -> CENT SIGN
- '\xa3' # 0xA3 -> POUND SIGN
- '\xa4' # 0xA4 -> CURRENCY SIGN
- '\xa5' # 0xA5 -> YEN SIGN
- '\xa6' # 0xA6 -> BROKEN BAR
- '\xa7' # 0xA7 -> SECTION SIGN
- '\xa8' # 0xA8 -> DIAERESIS
- '\xa9' # 0xA9 -> COPYRIGHT SIGN
- '\xaa' # 0xAA -> FEMININE ORDINAL INDICATOR
- '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xac' # 0xAC -> NOT SIGN
- '\xad' # 0xAD -> SOFT HYPHEN
- '\xae' # 0xAE -> REGISTERED SIGN
- '\xaf' # 0xAF -> MACRON
- '\xb0' # 0xB0 -> DEGREE SIGN
- '\xb1' # 0xB1 -> PLUS-MINUS SIGN
- '\xb2' # 0xB2 -> SUPERSCRIPT TWO
- '\xb3' # 0xB3 -> SUPERSCRIPT THREE
- '\xb4' # 0xB4 -> ACUTE ACCENT
- '\xb5' # 0xB5 -> MICRO SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xb7' # 0xB7 -> MIDDLE DOT
- '\xb8' # 0xB8 -> CEDILLA
- '\xb9' # 0xB9 -> SUPERSCRIPT ONE
- '\xba' # 0xBA -> MASCULINE ORDINAL INDICATOR
- '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
- '\xbf' # 0xBF -> INVERTED QUESTION MARK
- '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc3' # 0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
- '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
- '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xcc' # 0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
- '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\xd0' # 0xD0 -> LATIN CAPITAL LETTER ETH
- '\xd1' # 0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xd2' # 0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
- '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xd7' # 0xD7 -> MULTIPLICATION SIGN
- '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
- '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
- '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xdd' # 0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\xde' # 0xDE -> LATIN CAPITAL LETTER THORN
- '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
- '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe3' # 0xE3 -> LATIN SMALL LETTER A WITH TILDE
- '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
- '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
- '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
- '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xec' # 0xEC -> LATIN SMALL LETTER I WITH GRAVE
- '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
- '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xf0' # 0xF0 -> LATIN SMALL LETTER ETH
- '\xf1' # 0xF1 -> LATIN SMALL LETTER N WITH TILDE
- '\xf2' # 0xF2 -> LATIN SMALL LETTER O WITH GRAVE
- '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
- '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
- '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf7' # 0xF7 -> DIVISION SIGN
- '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
- '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
- '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
- '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xfd' # 0xFD -> LATIN SMALL LETTER Y WITH ACUTE
- '\xfe' # 0xFE -> LATIN SMALL LETTER THORN
- '\xff' # 0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1253.py b/EasyTrans/Lib/encodings/cp1253.py
deleted file mode 100644
index ec9c0972..00000000
--- a/EasyTrans/Lib/encodings/cp1253.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1253 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1253.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1253',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\u20ac' # 0x80 -> EURO SIGN
- '\ufffe' # 0x81 -> UNDEFINED
- '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
- '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
- '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
- '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
- '\u2020' # 0x86 -> DAGGER
- '\u2021' # 0x87 -> DOUBLE DAGGER
- '\ufffe' # 0x88 -> UNDEFINED
- '\u2030' # 0x89 -> PER MILLE SIGN
- '\ufffe' # 0x8A -> UNDEFINED
- '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- '\ufffe' # 0x8C -> UNDEFINED
- '\ufffe' # 0x8D -> UNDEFINED
- '\ufffe' # 0x8E -> UNDEFINED
- '\ufffe' # 0x8F -> UNDEFINED
- '\ufffe' # 0x90 -> UNDEFINED
- '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
- '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
- '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
- '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
- '\u2022' # 0x95 -> BULLET
- '\u2013' # 0x96 -> EN DASH
- '\u2014' # 0x97 -> EM DASH
- '\ufffe' # 0x98 -> UNDEFINED
- '\u2122' # 0x99 -> TRADE MARK SIGN
- '\ufffe' # 0x9A -> UNDEFINED
- '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- '\ufffe' # 0x9C -> UNDEFINED
- '\ufffe' # 0x9D -> UNDEFINED
- '\ufffe' # 0x9E -> UNDEFINED
- '\ufffe' # 0x9F -> UNDEFINED
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\u0385' # 0xA1 -> GREEK DIALYTIKA TONOS
- '\u0386' # 0xA2 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
- '\xa3' # 0xA3 -> POUND SIGN
- '\xa4' # 0xA4 -> CURRENCY SIGN
- '\xa5' # 0xA5 -> YEN SIGN
- '\xa6' # 0xA6 -> BROKEN BAR
- '\xa7' # 0xA7 -> SECTION SIGN
- '\xa8' # 0xA8 -> DIAERESIS
- '\xa9' # 0xA9 -> COPYRIGHT SIGN
- '\ufffe' # 0xAA -> UNDEFINED
- '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xac' # 0xAC -> NOT SIGN
- '\xad' # 0xAD -> SOFT HYPHEN
- '\xae' # 0xAE -> REGISTERED SIGN
- '\u2015' # 0xAF -> HORIZONTAL BAR
- '\xb0' # 0xB0 -> DEGREE SIGN
- '\xb1' # 0xB1 -> PLUS-MINUS SIGN
- '\xb2' # 0xB2 -> SUPERSCRIPT TWO
- '\xb3' # 0xB3 -> SUPERSCRIPT THREE
- '\u0384' # 0xB4 -> GREEK TONOS
- '\xb5' # 0xB5 -> MICRO SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xb7' # 0xB7 -> MIDDLE DOT
- '\u0388' # 0xB8 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
- '\u0389' # 0xB9 -> GREEK CAPITAL LETTER ETA WITH TONOS
- '\u038a' # 0xBA -> GREEK CAPITAL LETTER IOTA WITH TONOS
- '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u038c' # 0xBC -> GREEK CAPITAL LETTER OMICRON WITH TONOS
- '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
- '\u038e' # 0xBE -> GREEK CAPITAL LETTER UPSILON WITH TONOS
- '\u038f' # 0xBF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
- '\u0390' # 0xC0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
- '\u0391' # 0xC1 -> GREEK CAPITAL LETTER ALPHA
- '\u0392' # 0xC2 -> GREEK CAPITAL LETTER BETA
- '\u0393' # 0xC3 -> GREEK CAPITAL LETTER GAMMA
- '\u0394' # 0xC4 -> GREEK CAPITAL LETTER DELTA
- '\u0395' # 0xC5 -> GREEK CAPITAL LETTER EPSILON
- '\u0396' # 0xC6 -> GREEK CAPITAL LETTER ZETA
- '\u0397' # 0xC7 -> GREEK CAPITAL LETTER ETA
- '\u0398' # 0xC8 -> GREEK CAPITAL LETTER THETA
- '\u0399' # 0xC9 -> GREEK CAPITAL LETTER IOTA
- '\u039a' # 0xCA -> GREEK CAPITAL LETTER KAPPA
- '\u039b' # 0xCB -> GREEK CAPITAL LETTER LAMDA
- '\u039c' # 0xCC -> GREEK CAPITAL LETTER MU
- '\u039d' # 0xCD -> GREEK CAPITAL LETTER NU
- '\u039e' # 0xCE -> GREEK CAPITAL LETTER XI
- '\u039f' # 0xCF -> GREEK CAPITAL LETTER OMICRON
- '\u03a0' # 0xD0 -> GREEK CAPITAL LETTER PI
- '\u03a1' # 0xD1 -> GREEK CAPITAL LETTER RHO
- '\ufffe' # 0xD2 -> UNDEFINED
- '\u03a3' # 0xD3 -> GREEK CAPITAL LETTER SIGMA
- '\u03a4' # 0xD4 -> GREEK CAPITAL LETTER TAU
- '\u03a5' # 0xD5 -> GREEK CAPITAL LETTER UPSILON
- '\u03a6' # 0xD6 -> GREEK CAPITAL LETTER PHI
- '\u03a7' # 0xD7 -> GREEK CAPITAL LETTER CHI
- '\u03a8' # 0xD8 -> GREEK CAPITAL LETTER PSI
- '\u03a9' # 0xD9 -> GREEK CAPITAL LETTER OMEGA
- '\u03aa' # 0xDA -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
- '\u03ab' # 0xDB -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
- '\u03ac' # 0xDC -> GREEK SMALL LETTER ALPHA WITH TONOS
- '\u03ad' # 0xDD -> GREEK SMALL LETTER EPSILON WITH TONOS
- '\u03ae' # 0xDE -> GREEK SMALL LETTER ETA WITH TONOS
- '\u03af' # 0xDF -> GREEK SMALL LETTER IOTA WITH TONOS
- '\u03b0' # 0xE0 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
- '\u03b1' # 0xE1 -> GREEK SMALL LETTER ALPHA
- '\u03b2' # 0xE2 -> GREEK SMALL LETTER BETA
- '\u03b3' # 0xE3 -> GREEK SMALL LETTER GAMMA
- '\u03b4' # 0xE4 -> GREEK SMALL LETTER DELTA
- '\u03b5' # 0xE5 -> GREEK SMALL LETTER EPSILON
- '\u03b6' # 0xE6 -> GREEK SMALL LETTER ZETA
- '\u03b7' # 0xE7 -> GREEK SMALL LETTER ETA
- '\u03b8' # 0xE8 -> GREEK SMALL LETTER THETA
- '\u03b9' # 0xE9 -> GREEK SMALL LETTER IOTA
- '\u03ba' # 0xEA -> GREEK SMALL LETTER KAPPA
- '\u03bb' # 0xEB -> GREEK SMALL LETTER LAMDA
- '\u03bc' # 0xEC -> GREEK SMALL LETTER MU
- '\u03bd' # 0xED -> GREEK SMALL LETTER NU
- '\u03be' # 0xEE -> GREEK SMALL LETTER XI
- '\u03bf' # 0xEF -> GREEK SMALL LETTER OMICRON
- '\u03c0' # 0xF0 -> GREEK SMALL LETTER PI
- '\u03c1' # 0xF1 -> GREEK SMALL LETTER RHO
- '\u03c2' # 0xF2 -> GREEK SMALL LETTER FINAL SIGMA
- '\u03c3' # 0xF3 -> GREEK SMALL LETTER SIGMA
- '\u03c4' # 0xF4 -> GREEK SMALL LETTER TAU
- '\u03c5' # 0xF5 -> GREEK SMALL LETTER UPSILON
- '\u03c6' # 0xF6 -> GREEK SMALL LETTER PHI
- '\u03c7' # 0xF7 -> GREEK SMALL LETTER CHI
- '\u03c8' # 0xF8 -> GREEK SMALL LETTER PSI
- '\u03c9' # 0xF9 -> GREEK SMALL LETTER OMEGA
- '\u03ca' # 0xFA -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
- '\u03cb' # 0xFB -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
- '\u03cc' # 0xFC -> GREEK SMALL LETTER OMICRON WITH TONOS
- '\u03cd' # 0xFD -> GREEK SMALL LETTER UPSILON WITH TONOS
- '\u03ce' # 0xFE -> GREEK SMALL LETTER OMEGA WITH TONOS
- '\ufffe' # 0xFF -> UNDEFINED
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1254.py b/EasyTrans/Lib/encodings/cp1254.py
deleted file mode 100644
index 4912327a..00000000
--- a/EasyTrans/Lib/encodings/cp1254.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1254 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1254.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1254',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\u20ac' # 0x80 -> EURO SIGN
- '\ufffe' # 0x81 -> UNDEFINED
- '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
- '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
- '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
- '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
- '\u2020' # 0x86 -> DAGGER
- '\u2021' # 0x87 -> DOUBLE DAGGER
- '\u02c6' # 0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
- '\u2030' # 0x89 -> PER MILLE SIGN
- '\u0160' # 0x8A -> LATIN CAPITAL LETTER S WITH CARON
- '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- '\u0152' # 0x8C -> LATIN CAPITAL LIGATURE OE
- '\ufffe' # 0x8D -> UNDEFINED
- '\ufffe' # 0x8E -> UNDEFINED
- '\ufffe' # 0x8F -> UNDEFINED
- '\ufffe' # 0x90 -> UNDEFINED
- '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
- '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
- '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
- '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
- '\u2022' # 0x95 -> BULLET
- '\u2013' # 0x96 -> EN DASH
- '\u2014' # 0x97 -> EM DASH
- '\u02dc' # 0x98 -> SMALL TILDE
- '\u2122' # 0x99 -> TRADE MARK SIGN
- '\u0161' # 0x9A -> LATIN SMALL LETTER S WITH CARON
- '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- '\u0153' # 0x9C -> LATIN SMALL LIGATURE OE
- '\ufffe' # 0x9D -> UNDEFINED
- '\ufffe' # 0x9E -> UNDEFINED
- '\u0178' # 0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\xa1' # 0xA1 -> INVERTED EXCLAMATION MARK
- '\xa2' # 0xA2 -> CENT SIGN
- '\xa3' # 0xA3 -> POUND SIGN
- '\xa4' # 0xA4 -> CURRENCY SIGN
- '\xa5' # 0xA5 -> YEN SIGN
- '\xa6' # 0xA6 -> BROKEN BAR
- '\xa7' # 0xA7 -> SECTION SIGN
- '\xa8' # 0xA8 -> DIAERESIS
- '\xa9' # 0xA9 -> COPYRIGHT SIGN
- '\xaa' # 0xAA -> FEMININE ORDINAL INDICATOR
- '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xac' # 0xAC -> NOT SIGN
- '\xad' # 0xAD -> SOFT HYPHEN
- '\xae' # 0xAE -> REGISTERED SIGN
- '\xaf' # 0xAF -> MACRON
- '\xb0' # 0xB0 -> DEGREE SIGN
- '\xb1' # 0xB1 -> PLUS-MINUS SIGN
- '\xb2' # 0xB2 -> SUPERSCRIPT TWO
- '\xb3' # 0xB3 -> SUPERSCRIPT THREE
- '\xb4' # 0xB4 -> ACUTE ACCENT
- '\xb5' # 0xB5 -> MICRO SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xb7' # 0xB7 -> MIDDLE DOT
- '\xb8' # 0xB8 -> CEDILLA
- '\xb9' # 0xB9 -> SUPERSCRIPT ONE
- '\xba' # 0xBA -> MASCULINE ORDINAL INDICATOR
- '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
- '\xbf' # 0xBF -> INVERTED QUESTION MARK
- '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc3' # 0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
- '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
- '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xcc' # 0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
- '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\u011e' # 0xD0 -> LATIN CAPITAL LETTER G WITH BREVE
- '\xd1' # 0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xd2' # 0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
- '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xd7' # 0xD7 -> MULTIPLICATION SIGN
- '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
- '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
- '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\u0130' # 0xDD -> LATIN CAPITAL LETTER I WITH DOT ABOVE
- '\u015e' # 0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
- '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
- '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe3' # 0xE3 -> LATIN SMALL LETTER A WITH TILDE
- '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
- '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
- '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
- '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xec' # 0xEC -> LATIN SMALL LETTER I WITH GRAVE
- '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
- '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
- '\u011f' # 0xF0 -> LATIN SMALL LETTER G WITH BREVE
- '\xf1' # 0xF1 -> LATIN SMALL LETTER N WITH TILDE
- '\xf2' # 0xF2 -> LATIN SMALL LETTER O WITH GRAVE
- '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
- '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
- '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf7' # 0xF7 -> DIVISION SIGN
- '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
- '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
- '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
- '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
- '\u0131' # 0xFD -> LATIN SMALL LETTER DOTLESS I
- '\u015f' # 0xFE -> LATIN SMALL LETTER S WITH CEDILLA
- '\xff' # 0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1255.py b/EasyTrans/Lib/encodings/cp1255.py
deleted file mode 100644
index 91ce26b9..00000000
--- a/EasyTrans/Lib/encodings/cp1255.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1255 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1255.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1255',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\u20ac' # 0x80 -> EURO SIGN
- '\ufffe' # 0x81 -> UNDEFINED
- '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
- '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
- '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
- '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
- '\u2020' # 0x86 -> DAGGER
- '\u2021' # 0x87 -> DOUBLE DAGGER
- '\u02c6' # 0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
- '\u2030' # 0x89 -> PER MILLE SIGN
- '\ufffe' # 0x8A -> UNDEFINED
- '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- '\ufffe' # 0x8C -> UNDEFINED
- '\ufffe' # 0x8D -> UNDEFINED
- '\ufffe' # 0x8E -> UNDEFINED
- '\ufffe' # 0x8F -> UNDEFINED
- '\ufffe' # 0x90 -> UNDEFINED
- '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
- '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
- '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
- '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
- '\u2022' # 0x95 -> BULLET
- '\u2013' # 0x96 -> EN DASH
- '\u2014' # 0x97 -> EM DASH
- '\u02dc' # 0x98 -> SMALL TILDE
- '\u2122' # 0x99 -> TRADE MARK SIGN
- '\ufffe' # 0x9A -> UNDEFINED
- '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- '\ufffe' # 0x9C -> UNDEFINED
- '\ufffe' # 0x9D -> UNDEFINED
- '\ufffe' # 0x9E -> UNDEFINED
- '\ufffe' # 0x9F -> UNDEFINED
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\xa1' # 0xA1 -> INVERTED EXCLAMATION MARK
- '\xa2' # 0xA2 -> CENT SIGN
- '\xa3' # 0xA3 -> POUND SIGN
- '\u20aa' # 0xA4 -> NEW SHEQEL SIGN
- '\xa5' # 0xA5 -> YEN SIGN
- '\xa6' # 0xA6 -> BROKEN BAR
- '\xa7' # 0xA7 -> SECTION SIGN
- '\xa8' # 0xA8 -> DIAERESIS
- '\xa9' # 0xA9 -> COPYRIGHT SIGN
- '\xd7' # 0xAA -> MULTIPLICATION SIGN
- '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xac' # 0xAC -> NOT SIGN
- '\xad' # 0xAD -> SOFT HYPHEN
- '\xae' # 0xAE -> REGISTERED SIGN
- '\xaf' # 0xAF -> MACRON
- '\xb0' # 0xB0 -> DEGREE SIGN
- '\xb1' # 0xB1 -> PLUS-MINUS SIGN
- '\xb2' # 0xB2 -> SUPERSCRIPT TWO
- '\xb3' # 0xB3 -> SUPERSCRIPT THREE
- '\xb4' # 0xB4 -> ACUTE ACCENT
- '\xb5' # 0xB5 -> MICRO SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xb7' # 0xB7 -> MIDDLE DOT
- '\xb8' # 0xB8 -> CEDILLA
- '\xb9' # 0xB9 -> SUPERSCRIPT ONE
- '\xf7' # 0xBA -> DIVISION SIGN
- '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
- '\xbf' # 0xBF -> INVERTED QUESTION MARK
- '\u05b0' # 0xC0 -> HEBREW POINT SHEVA
- '\u05b1' # 0xC1 -> HEBREW POINT HATAF SEGOL
- '\u05b2' # 0xC2 -> HEBREW POINT HATAF PATAH
- '\u05b3' # 0xC3 -> HEBREW POINT HATAF QAMATS
- '\u05b4' # 0xC4 -> HEBREW POINT HIRIQ
- '\u05b5' # 0xC5 -> HEBREW POINT TSERE
- '\u05b6' # 0xC6 -> HEBREW POINT SEGOL
- '\u05b7' # 0xC7 -> HEBREW POINT PATAH
- '\u05b8' # 0xC8 -> HEBREW POINT QAMATS
- '\u05b9' # 0xC9 -> HEBREW POINT HOLAM
- '\ufffe' # 0xCA -> UNDEFINED
- '\u05bb' # 0xCB -> HEBREW POINT QUBUTS
- '\u05bc' # 0xCC -> HEBREW POINT DAGESH OR MAPIQ
- '\u05bd' # 0xCD -> HEBREW POINT METEG
- '\u05be' # 0xCE -> HEBREW PUNCTUATION MAQAF
- '\u05bf' # 0xCF -> HEBREW POINT RAFE
- '\u05c0' # 0xD0 -> HEBREW PUNCTUATION PASEQ
- '\u05c1' # 0xD1 -> HEBREW POINT SHIN DOT
- '\u05c2' # 0xD2 -> HEBREW POINT SIN DOT
- '\u05c3' # 0xD3 -> HEBREW PUNCTUATION SOF PASUQ
- '\u05f0' # 0xD4 -> HEBREW LIGATURE YIDDISH DOUBLE VAV
- '\u05f1' # 0xD5 -> HEBREW LIGATURE YIDDISH VAV YOD
- '\u05f2' # 0xD6 -> HEBREW LIGATURE YIDDISH DOUBLE YOD
- '\u05f3' # 0xD7 -> HEBREW PUNCTUATION GERESH
- '\u05f4' # 0xD8 -> HEBREW PUNCTUATION GERSHAYIM
- '\ufffe' # 0xD9 -> UNDEFINED
- '\ufffe' # 0xDA -> UNDEFINED
- '\ufffe' # 0xDB -> UNDEFINED
- '\ufffe' # 0xDC -> UNDEFINED
- '\ufffe' # 0xDD -> UNDEFINED
- '\ufffe' # 0xDE -> UNDEFINED
- '\ufffe' # 0xDF -> UNDEFINED
- '\u05d0' # 0xE0 -> HEBREW LETTER ALEF
- '\u05d1' # 0xE1 -> HEBREW LETTER BET
- '\u05d2' # 0xE2 -> HEBREW LETTER GIMEL
- '\u05d3' # 0xE3 -> HEBREW LETTER DALET
- '\u05d4' # 0xE4 -> HEBREW LETTER HE
- '\u05d5' # 0xE5 -> HEBREW LETTER VAV
- '\u05d6' # 0xE6 -> HEBREW LETTER ZAYIN
- '\u05d7' # 0xE7 -> HEBREW LETTER HET
- '\u05d8' # 0xE8 -> HEBREW LETTER TET
- '\u05d9' # 0xE9 -> HEBREW LETTER YOD
- '\u05da' # 0xEA -> HEBREW LETTER FINAL KAF
- '\u05db' # 0xEB -> HEBREW LETTER KAF
- '\u05dc' # 0xEC -> HEBREW LETTER LAMED
- '\u05dd' # 0xED -> HEBREW LETTER FINAL MEM
- '\u05de' # 0xEE -> HEBREW LETTER MEM
- '\u05df' # 0xEF -> HEBREW LETTER FINAL NUN
- '\u05e0' # 0xF0 -> HEBREW LETTER NUN
- '\u05e1' # 0xF1 -> HEBREW LETTER SAMEKH
- '\u05e2' # 0xF2 -> HEBREW LETTER AYIN
- '\u05e3' # 0xF3 -> HEBREW LETTER FINAL PE
- '\u05e4' # 0xF4 -> HEBREW LETTER PE
- '\u05e5' # 0xF5 -> HEBREW LETTER FINAL TSADI
- '\u05e6' # 0xF6 -> HEBREW LETTER TSADI
- '\u05e7' # 0xF7 -> HEBREW LETTER QOF
- '\u05e8' # 0xF8 -> HEBREW LETTER RESH
- '\u05e9' # 0xF9 -> HEBREW LETTER SHIN
- '\u05ea' # 0xFA -> HEBREW LETTER TAV
- '\ufffe' # 0xFB -> UNDEFINED
- '\ufffe' # 0xFC -> UNDEFINED
- '\u200e' # 0xFD -> LEFT-TO-RIGHT MARK
- '\u200f' # 0xFE -> RIGHT-TO-LEFT MARK
- '\ufffe' # 0xFF -> UNDEFINED
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1256.py b/EasyTrans/Lib/encodings/cp1256.py
deleted file mode 100644
index fd6afab5..00000000
--- a/EasyTrans/Lib/encodings/cp1256.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1256 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1256.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1256',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\u20ac' # 0x80 -> EURO SIGN
- '\u067e' # 0x81 -> ARABIC LETTER PEH
- '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
- '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
- '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
- '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
- '\u2020' # 0x86 -> DAGGER
- '\u2021' # 0x87 -> DOUBLE DAGGER
- '\u02c6' # 0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
- '\u2030' # 0x89 -> PER MILLE SIGN
- '\u0679' # 0x8A -> ARABIC LETTER TTEH
- '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- '\u0152' # 0x8C -> LATIN CAPITAL LIGATURE OE
- '\u0686' # 0x8D -> ARABIC LETTER TCHEH
- '\u0698' # 0x8E -> ARABIC LETTER JEH
- '\u0688' # 0x8F -> ARABIC LETTER DDAL
- '\u06af' # 0x90 -> ARABIC LETTER GAF
- '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
- '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
- '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
- '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
- '\u2022' # 0x95 -> BULLET
- '\u2013' # 0x96 -> EN DASH
- '\u2014' # 0x97 -> EM DASH
- '\u06a9' # 0x98 -> ARABIC LETTER KEHEH
- '\u2122' # 0x99 -> TRADE MARK SIGN
- '\u0691' # 0x9A -> ARABIC LETTER RREH
- '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- '\u0153' # 0x9C -> LATIN SMALL LIGATURE OE
- '\u200c' # 0x9D -> ZERO WIDTH NON-JOINER
- '\u200d' # 0x9E -> ZERO WIDTH JOINER
- '\u06ba' # 0x9F -> ARABIC LETTER NOON GHUNNA
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\u060c' # 0xA1 -> ARABIC COMMA
- '\xa2' # 0xA2 -> CENT SIGN
- '\xa3' # 0xA3 -> POUND SIGN
- '\xa4' # 0xA4 -> CURRENCY SIGN
- '\xa5' # 0xA5 -> YEN SIGN
- '\xa6' # 0xA6 -> BROKEN BAR
- '\xa7' # 0xA7 -> SECTION SIGN
- '\xa8' # 0xA8 -> DIAERESIS
- '\xa9' # 0xA9 -> COPYRIGHT SIGN
- '\u06be' # 0xAA -> ARABIC LETTER HEH DOACHASHMEE
- '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xac' # 0xAC -> NOT SIGN
- '\xad' # 0xAD -> SOFT HYPHEN
- '\xae' # 0xAE -> REGISTERED SIGN
- '\xaf' # 0xAF -> MACRON
- '\xb0' # 0xB0 -> DEGREE SIGN
- '\xb1' # 0xB1 -> PLUS-MINUS SIGN
- '\xb2' # 0xB2 -> SUPERSCRIPT TWO
- '\xb3' # 0xB3 -> SUPERSCRIPT THREE
- '\xb4' # 0xB4 -> ACUTE ACCENT
- '\xb5' # 0xB5 -> MICRO SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xb7' # 0xB7 -> MIDDLE DOT
- '\xb8' # 0xB8 -> CEDILLA
- '\xb9' # 0xB9 -> SUPERSCRIPT ONE
- '\u061b' # 0xBA -> ARABIC SEMICOLON
- '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
- '\u061f' # 0xBF -> ARABIC QUESTION MARK
- '\u06c1' # 0xC0 -> ARABIC LETTER HEH GOAL
- '\u0621' # 0xC1 -> ARABIC LETTER HAMZA
- '\u0622' # 0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
- '\u0623' # 0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
- '\u0624' # 0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
- '\u0625' # 0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
- '\u0626' # 0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
- '\u0627' # 0xC7 -> ARABIC LETTER ALEF
- '\u0628' # 0xC8 -> ARABIC LETTER BEH
- '\u0629' # 0xC9 -> ARABIC LETTER TEH MARBUTA
- '\u062a' # 0xCA -> ARABIC LETTER TEH
- '\u062b' # 0xCB -> ARABIC LETTER THEH
- '\u062c' # 0xCC -> ARABIC LETTER JEEM
- '\u062d' # 0xCD -> ARABIC LETTER HAH
- '\u062e' # 0xCE -> ARABIC LETTER KHAH
- '\u062f' # 0xCF -> ARABIC LETTER DAL
- '\u0630' # 0xD0 -> ARABIC LETTER THAL
- '\u0631' # 0xD1 -> ARABIC LETTER REH
- '\u0632' # 0xD2 -> ARABIC LETTER ZAIN
- '\u0633' # 0xD3 -> ARABIC LETTER SEEN
- '\u0634' # 0xD4 -> ARABIC LETTER SHEEN
- '\u0635' # 0xD5 -> ARABIC LETTER SAD
- '\u0636' # 0xD6 -> ARABIC LETTER DAD
- '\xd7' # 0xD7 -> MULTIPLICATION SIGN
- '\u0637' # 0xD8 -> ARABIC LETTER TAH
- '\u0638' # 0xD9 -> ARABIC LETTER ZAH
- '\u0639' # 0xDA -> ARABIC LETTER AIN
- '\u063a' # 0xDB -> ARABIC LETTER GHAIN
- '\u0640' # 0xDC -> ARABIC TATWEEL
- '\u0641' # 0xDD -> ARABIC LETTER FEH
- '\u0642' # 0xDE -> ARABIC LETTER QAF
- '\u0643' # 0xDF -> ARABIC LETTER KAF
- '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
- '\u0644' # 0xE1 -> ARABIC LETTER LAM
- '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\u0645' # 0xE3 -> ARABIC LETTER MEEM
- '\u0646' # 0xE4 -> ARABIC LETTER NOON
- '\u0647' # 0xE5 -> ARABIC LETTER HEH
- '\u0648' # 0xE6 -> ARABIC LETTER WAW
- '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
- '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
- '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
- '\u0649' # 0xEC -> ARABIC LETTER ALEF MAKSURA
- '\u064a' # 0xED -> ARABIC LETTER YEH
- '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
- '\u064b' # 0xF0 -> ARABIC FATHATAN
- '\u064c' # 0xF1 -> ARABIC DAMMATAN
- '\u064d' # 0xF2 -> ARABIC KASRATAN
- '\u064e' # 0xF3 -> ARABIC FATHA
- '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\u064f' # 0xF5 -> ARABIC DAMMA
- '\u0650' # 0xF6 -> ARABIC KASRA
- '\xf7' # 0xF7 -> DIVISION SIGN
- '\u0651' # 0xF8 -> ARABIC SHADDA
- '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
- '\u0652' # 0xFA -> ARABIC SUKUN
- '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
- '\u200e' # 0xFD -> LEFT-TO-RIGHT MARK
- '\u200f' # 0xFE -> RIGHT-TO-LEFT MARK
- '\u06d2' # 0xFF -> ARABIC LETTER YEH BARREE
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1257.py b/EasyTrans/Lib/encodings/cp1257.py
deleted file mode 100644
index 9ebc90d5..00000000
--- a/EasyTrans/Lib/encodings/cp1257.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1257 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1257.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1257',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\u20ac' # 0x80 -> EURO SIGN
- '\ufffe' # 0x81 -> UNDEFINED
- '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
- '\ufffe' # 0x83 -> UNDEFINED
- '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
- '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
- '\u2020' # 0x86 -> DAGGER
- '\u2021' # 0x87 -> DOUBLE DAGGER
- '\ufffe' # 0x88 -> UNDEFINED
- '\u2030' # 0x89 -> PER MILLE SIGN
- '\ufffe' # 0x8A -> UNDEFINED
- '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- '\ufffe' # 0x8C -> UNDEFINED
- '\xa8' # 0x8D -> DIAERESIS
- '\u02c7' # 0x8E -> CARON
- '\xb8' # 0x8F -> CEDILLA
- '\ufffe' # 0x90 -> UNDEFINED
- '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
- '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
- '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
- '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
- '\u2022' # 0x95 -> BULLET
- '\u2013' # 0x96 -> EN DASH
- '\u2014' # 0x97 -> EM DASH
- '\ufffe' # 0x98 -> UNDEFINED
- '\u2122' # 0x99 -> TRADE MARK SIGN
- '\ufffe' # 0x9A -> UNDEFINED
- '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- '\ufffe' # 0x9C -> UNDEFINED
- '\xaf' # 0x9D -> MACRON
- '\u02db' # 0x9E -> OGONEK
- '\ufffe' # 0x9F -> UNDEFINED
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\ufffe' # 0xA1 -> UNDEFINED
- '\xa2' # 0xA2 -> CENT SIGN
- '\xa3' # 0xA3 -> POUND SIGN
- '\xa4' # 0xA4 -> CURRENCY SIGN
- '\ufffe' # 0xA5 -> UNDEFINED
- '\xa6' # 0xA6 -> BROKEN BAR
- '\xa7' # 0xA7 -> SECTION SIGN
- '\xd8' # 0xA8 -> LATIN CAPITAL LETTER O WITH STROKE
- '\xa9' # 0xA9 -> COPYRIGHT SIGN
- '\u0156' # 0xAA -> LATIN CAPITAL LETTER R WITH CEDILLA
- '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xac' # 0xAC -> NOT SIGN
- '\xad' # 0xAD -> SOFT HYPHEN
- '\xae' # 0xAE -> REGISTERED SIGN
- '\xc6' # 0xAF -> LATIN CAPITAL LETTER AE
- '\xb0' # 0xB0 -> DEGREE SIGN
- '\xb1' # 0xB1 -> PLUS-MINUS SIGN
- '\xb2' # 0xB2 -> SUPERSCRIPT TWO
- '\xb3' # 0xB3 -> SUPERSCRIPT THREE
- '\xb4' # 0xB4 -> ACUTE ACCENT
- '\xb5' # 0xB5 -> MICRO SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xb7' # 0xB7 -> MIDDLE DOT
- '\xf8' # 0xB8 -> LATIN SMALL LETTER O WITH STROKE
- '\xb9' # 0xB9 -> SUPERSCRIPT ONE
- '\u0157' # 0xBA -> LATIN SMALL LETTER R WITH CEDILLA
- '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
- '\xe6' # 0xBF -> LATIN SMALL LETTER AE
- '\u0104' # 0xC0 -> LATIN CAPITAL LETTER A WITH OGONEK
- '\u012e' # 0xC1 -> LATIN CAPITAL LETTER I WITH OGONEK
- '\u0100' # 0xC2 -> LATIN CAPITAL LETTER A WITH MACRON
- '\u0106' # 0xC3 -> LATIN CAPITAL LETTER C WITH ACUTE
- '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\u0118' # 0xC6 -> LATIN CAPITAL LETTER E WITH OGONEK
- '\u0112' # 0xC7 -> LATIN CAPITAL LETTER E WITH MACRON
- '\u010c' # 0xC8 -> LATIN CAPITAL LETTER C WITH CARON
- '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\u0179' # 0xCA -> LATIN CAPITAL LETTER Z WITH ACUTE
- '\u0116' # 0xCB -> LATIN CAPITAL LETTER E WITH DOT ABOVE
- '\u0122' # 0xCC -> LATIN CAPITAL LETTER G WITH CEDILLA
- '\u0136' # 0xCD -> LATIN CAPITAL LETTER K WITH CEDILLA
- '\u012a' # 0xCE -> LATIN CAPITAL LETTER I WITH MACRON
- '\u013b' # 0xCF -> LATIN CAPITAL LETTER L WITH CEDILLA
- '\u0160' # 0xD0 -> LATIN CAPITAL LETTER S WITH CARON
- '\u0143' # 0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
- '\u0145' # 0xD2 -> LATIN CAPITAL LETTER N WITH CEDILLA
- '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\u014c' # 0xD4 -> LATIN CAPITAL LETTER O WITH MACRON
- '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
- '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xd7' # 0xD7 -> MULTIPLICATION SIGN
- '\u0172' # 0xD8 -> LATIN CAPITAL LETTER U WITH OGONEK
- '\u0141' # 0xD9 -> LATIN CAPITAL LETTER L WITH STROKE
- '\u015a' # 0xDA -> LATIN CAPITAL LETTER S WITH ACUTE
- '\u016a' # 0xDB -> LATIN CAPITAL LETTER U WITH MACRON
- '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\u017b' # 0xDD -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
- '\u017d' # 0xDE -> LATIN CAPITAL LETTER Z WITH CARON
- '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
- '\u0105' # 0xE0 -> LATIN SMALL LETTER A WITH OGONEK
- '\u012f' # 0xE1 -> LATIN SMALL LETTER I WITH OGONEK
- '\u0101' # 0xE2 -> LATIN SMALL LETTER A WITH MACRON
- '\u0107' # 0xE3 -> LATIN SMALL LETTER C WITH ACUTE
- '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\u0119' # 0xE6 -> LATIN SMALL LETTER E WITH OGONEK
- '\u0113' # 0xE7 -> LATIN SMALL LETTER E WITH MACRON
- '\u010d' # 0xE8 -> LATIN SMALL LETTER C WITH CARON
- '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
- '\u017a' # 0xEA -> LATIN SMALL LETTER Z WITH ACUTE
- '\u0117' # 0xEB -> LATIN SMALL LETTER E WITH DOT ABOVE
- '\u0123' # 0xEC -> LATIN SMALL LETTER G WITH CEDILLA
- '\u0137' # 0xED -> LATIN SMALL LETTER K WITH CEDILLA
- '\u012b' # 0xEE -> LATIN SMALL LETTER I WITH MACRON
- '\u013c' # 0xEF -> LATIN SMALL LETTER L WITH CEDILLA
- '\u0161' # 0xF0 -> LATIN SMALL LETTER S WITH CARON
- '\u0144' # 0xF1 -> LATIN SMALL LETTER N WITH ACUTE
- '\u0146' # 0xF2 -> LATIN SMALL LETTER N WITH CEDILLA
- '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
- '\u014d' # 0xF4 -> LATIN SMALL LETTER O WITH MACRON
- '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
- '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf7' # 0xF7 -> DIVISION SIGN
- '\u0173' # 0xF8 -> LATIN SMALL LETTER U WITH OGONEK
- '\u0142' # 0xF9 -> LATIN SMALL LETTER L WITH STROKE
- '\u015b' # 0xFA -> LATIN SMALL LETTER S WITH ACUTE
- '\u016b' # 0xFB -> LATIN SMALL LETTER U WITH MACRON
- '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
- '\u017c' # 0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
- '\u017e' # 0xFE -> LATIN SMALL LETTER Z WITH CARON
- '\u02d9' # 0xFF -> DOT ABOVE
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp1258.py b/EasyTrans/Lib/encodings/cp1258.py
deleted file mode 100644
index 784378a8..00000000
--- a/EasyTrans/Lib/encodings/cp1258.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp1258 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1258.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp1258',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\u20ac' # 0x80 -> EURO SIGN
- '\ufffe' # 0x81 -> UNDEFINED
- '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
- '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
- '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
- '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
- '\u2020' # 0x86 -> DAGGER
- '\u2021' # 0x87 -> DOUBLE DAGGER
- '\u02c6' # 0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
- '\u2030' # 0x89 -> PER MILLE SIGN
- '\ufffe' # 0x8A -> UNDEFINED
- '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- '\u0152' # 0x8C -> LATIN CAPITAL LIGATURE OE
- '\ufffe' # 0x8D -> UNDEFINED
- '\ufffe' # 0x8E -> UNDEFINED
- '\ufffe' # 0x8F -> UNDEFINED
- '\ufffe' # 0x90 -> UNDEFINED
- '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
- '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
- '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
- '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
- '\u2022' # 0x95 -> BULLET
- '\u2013' # 0x96 -> EN DASH
- '\u2014' # 0x97 -> EM DASH
- '\u02dc' # 0x98 -> SMALL TILDE
- '\u2122' # 0x99 -> TRADE MARK SIGN
- '\ufffe' # 0x9A -> UNDEFINED
- '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- '\u0153' # 0x9C -> LATIN SMALL LIGATURE OE
- '\ufffe' # 0x9D -> UNDEFINED
- '\ufffe' # 0x9E -> UNDEFINED
- '\u0178' # 0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\xa1' # 0xA1 -> INVERTED EXCLAMATION MARK
- '\xa2' # 0xA2 -> CENT SIGN
- '\xa3' # 0xA3 -> POUND SIGN
- '\xa4' # 0xA4 -> CURRENCY SIGN
- '\xa5' # 0xA5 -> YEN SIGN
- '\xa6' # 0xA6 -> BROKEN BAR
- '\xa7' # 0xA7 -> SECTION SIGN
- '\xa8' # 0xA8 -> DIAERESIS
- '\xa9' # 0xA9 -> COPYRIGHT SIGN
- '\xaa' # 0xAA -> FEMININE ORDINAL INDICATOR
- '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xac' # 0xAC -> NOT SIGN
- '\xad' # 0xAD -> SOFT HYPHEN
- '\xae' # 0xAE -> REGISTERED SIGN
- '\xaf' # 0xAF -> MACRON
- '\xb0' # 0xB0 -> DEGREE SIGN
- '\xb1' # 0xB1 -> PLUS-MINUS SIGN
- '\xb2' # 0xB2 -> SUPERSCRIPT TWO
- '\xb3' # 0xB3 -> SUPERSCRIPT THREE
- '\xb4' # 0xB4 -> ACUTE ACCENT
- '\xb5' # 0xB5 -> MICRO SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xb7' # 0xB7 -> MIDDLE DOT
- '\xb8' # 0xB8 -> CEDILLA
- '\xb9' # 0xB9 -> SUPERSCRIPT ONE
- '\xba' # 0xBA -> MASCULINE ORDINAL INDICATOR
- '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
- '\xbf' # 0xBF -> INVERTED QUESTION MARK
- '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\u0102' # 0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
- '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
- '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\u0300' # 0xCC -> COMBINING GRAVE ACCENT
- '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\u0110' # 0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
- '\xd1' # 0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
- '\u0309' # 0xD2 -> COMBINING HOOK ABOVE
- '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\u01a0' # 0xD5 -> LATIN CAPITAL LETTER O WITH HORN
- '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xd7' # 0xD7 -> MULTIPLICATION SIGN
- '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
- '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
- '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\u01af' # 0xDD -> LATIN CAPITAL LETTER U WITH HORN
- '\u0303' # 0xDE -> COMBINING TILDE
- '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
- '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\u0103' # 0xE3 -> LATIN SMALL LETTER A WITH BREVE
- '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
- '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
- '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
- '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
- '\u0301' # 0xEC -> COMBINING ACUTE ACCENT
- '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
- '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
- '\u0111' # 0xF0 -> LATIN SMALL LETTER D WITH STROKE
- '\xf1' # 0xF1 -> LATIN SMALL LETTER N WITH TILDE
- '\u0323' # 0xF2 -> COMBINING DOT BELOW
- '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
- '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\u01a1' # 0xF5 -> LATIN SMALL LETTER O WITH HORN
- '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf7' # 0xF7 -> DIVISION SIGN
- '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
- '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
- '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
- '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
- '\u01b0' # 0xFD -> LATIN SMALL LETTER U WITH HORN
- '\u20ab' # 0xFE -> DONG SIGN
- '\xff' # 0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp273.py b/EasyTrans/Lib/encodings/cp273.py
deleted file mode 100644
index 69c6d778..00000000
--- a/EasyTrans/Lib/encodings/cp273.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp273 generated from 'python-mappings/CP273.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp273',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL (NUL)
- '\x01' # 0x01 -> START OF HEADING (SOH)
- '\x02' # 0x02 -> START OF TEXT (STX)
- '\x03' # 0x03 -> END OF TEXT (ETX)
- '\x9c' # 0x04 -> STRING TERMINATOR (ST)
- '\t' # 0x05 -> CHARACTER TABULATION (HT)
- '\x86' # 0x06 -> START OF SELECTED AREA (SSA)
- '\x7f' # 0x07 -> DELETE (DEL)
- '\x97' # 0x08 -> END OF GUARDED AREA (EPA)
- '\x8d' # 0x09 -> REVERSE LINE FEED (RI)
- '\x8e' # 0x0A -> SINGLE-SHIFT TWO (SS2)
- '\x0b' # 0x0B -> LINE TABULATION (VT)
- '\x0c' # 0x0C -> FORM FEED (FF)
- '\r' # 0x0D -> CARRIAGE RETURN (CR)
- '\x0e' # 0x0E -> SHIFT OUT (SO)
- '\x0f' # 0x0F -> SHIFT IN (SI)
- '\x10' # 0x10 -> DATALINK ESCAPE (DLE)
- '\x11' # 0x11 -> DEVICE CONTROL ONE (DC1)
- '\x12' # 0x12 -> DEVICE CONTROL TWO (DC2)
- '\x13' # 0x13 -> DEVICE CONTROL THREE (DC3)
- '\x9d' # 0x14 -> OPERATING SYSTEM COMMAND (OSC)
- '\x85' # 0x15 -> NEXT LINE (NEL)
- '\x08' # 0x16 -> BACKSPACE (BS)
- '\x87' # 0x17 -> END OF SELECTED AREA (ESA)
- '\x18' # 0x18 -> CANCEL (CAN)
- '\x19' # 0x19 -> END OF MEDIUM (EM)
- '\x92' # 0x1A -> PRIVATE USE TWO (PU2)
- '\x8f' # 0x1B -> SINGLE-SHIFT THREE (SS3)
- '\x1c' # 0x1C -> FILE SEPARATOR (IS4)
- '\x1d' # 0x1D -> GROUP SEPARATOR (IS3)
- '\x1e' # 0x1E -> RECORD SEPARATOR (IS2)
- '\x1f' # 0x1F -> UNIT SEPARATOR (IS1)
- '\x80' # 0x20 -> PADDING CHARACTER (PAD)
- '\x81' # 0x21 -> HIGH OCTET PRESET (HOP)
- '\x82' # 0x22 -> BREAK PERMITTED HERE (BPH)
- '\x83' # 0x23 -> NO BREAK HERE (NBH)
- '\x84' # 0x24 -> INDEX (IND)
- '\n' # 0x25 -> LINE FEED (LF)
- '\x17' # 0x26 -> END OF TRANSMISSION BLOCK (ETB)
- '\x1b' # 0x27 -> ESCAPE (ESC)
- '\x88' # 0x28 -> CHARACTER TABULATION SET (HTS)
- '\x89' # 0x29 -> CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
- '\x8a' # 0x2A -> LINE TABULATION SET (VTS)
- '\x8b' # 0x2B -> PARTIAL LINE FORWARD (PLD)
- '\x8c' # 0x2C -> PARTIAL LINE BACKWARD (PLU)
- '\x05' # 0x2D -> ENQUIRY (ENQ)
- '\x06' # 0x2E -> ACKNOWLEDGE (ACK)
- '\x07' # 0x2F -> BELL (BEL)
- '\x90' # 0x30 -> DEVICE CONTROL STRING (DCS)
- '\x91' # 0x31 -> PRIVATE USE ONE (PU1)
- '\x16' # 0x32 -> SYNCHRONOUS IDLE (SYN)
- '\x93' # 0x33 -> SET TRANSMIT STATE (STS)
- '\x94' # 0x34 -> CANCEL CHARACTER (CCH)
- '\x95' # 0x35 -> MESSAGE WAITING (MW)
- '\x96' # 0x36 -> START OF GUARDED AREA (SPA)
- '\x04' # 0x37 -> END OF TRANSMISSION (EOT)
- '\x98' # 0x38 -> START OF STRING (SOS)
- '\x99' # 0x39 -> SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
- '\x9a' # 0x3A -> SINGLE CHARACTER INTRODUCER (SCI)
- '\x9b' # 0x3B -> CONTROL SEQUENCE INTRODUCER (CSI)
- '\x14' # 0x3C -> DEVICE CONTROL FOUR (DC4)
- '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE (NAK)
- '\x9e' # 0x3E -> PRIVACY MESSAGE (PM)
- '\x1a' # 0x3F -> SUBSTITUTE (SUB)
- ' ' # 0x40 -> SPACE
- '\xa0' # 0x41 -> NO-BREAK SPACE
- '\xe2' # 0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '{' # 0x43 -> LEFT CURLY BRACKET
- '\xe0' # 0x44 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe1' # 0x45 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe3' # 0x46 -> LATIN SMALL LETTER A WITH TILDE
- '\xe5' # 0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe7' # 0x48 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xf1' # 0x49 -> LATIN SMALL LETTER N WITH TILDE
- '\xc4' # 0x4A -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '.' # 0x4B -> FULL STOP
- '<' # 0x4C -> LESS-THAN SIGN
- '(' # 0x4D -> LEFT PARENTHESIS
- '+' # 0x4E -> PLUS SIGN
- '!' # 0x4F -> EXCLAMATION MARK
- '&' # 0x50 -> AMPERSAND
- '\xe9' # 0x51 -> LATIN SMALL LETTER E WITH ACUTE
- '\xea' # 0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x54 -> LATIN SMALL LETTER E WITH GRAVE
- '\xed' # 0x55 -> LATIN SMALL LETTER I WITH ACUTE
- '\xee' # 0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xef' # 0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xec' # 0x58 -> LATIN SMALL LETTER I WITH GRAVE
- '~' # 0x59 -> TILDE
- '\xdc' # 0x5A -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '$' # 0x5B -> DOLLAR SIGN
- '*' # 0x5C -> ASTERISK
- ')' # 0x5D -> RIGHT PARENTHESIS
- ';' # 0x5E -> SEMICOLON
- '^' # 0x5F -> CIRCUMFLEX ACCENT
- '-' # 0x60 -> HYPHEN-MINUS
- '/' # 0x61 -> SOLIDUS
- '\xc2' # 0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '[' # 0x63 -> LEFT SQUARE BRACKET
- '\xc0' # 0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xc1' # 0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc3' # 0x66 -> LATIN CAPITAL LETTER A WITH TILDE
- '\xc5' # 0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc7' # 0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xd1' # 0x69 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xf6' # 0x6A -> LATIN SMALL LETTER O WITH DIAERESIS
- ',' # 0x6B -> COMMA
- '%' # 0x6C -> PERCENT SIGN
- '_' # 0x6D -> LOW LINE
- '>' # 0x6E -> GREATER-THAN SIGN
- '?' # 0x6F -> QUESTION MARK
- '\xf8' # 0x70 -> LATIN SMALL LETTER O WITH STROKE
- '\xc9' # 0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xca' # 0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xc8' # 0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xcd' # 0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\xcc' # 0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
- '`' # 0x79 -> GRAVE ACCENT
- ':' # 0x7A -> COLON
- '#' # 0x7B -> NUMBER SIGN
- '\xa7' # 0x7C -> SECTION SIGN
- "'" # 0x7D -> APOSTROPHE
- '=' # 0x7E -> EQUALS SIGN
- '"' # 0x7F -> QUOTATION MARK
- '\xd8' # 0x80 -> LATIN CAPITAL LETTER O WITH STROKE
- 'a' # 0x81 -> LATIN SMALL LETTER A
- 'b' # 0x82 -> LATIN SMALL LETTER B
- 'c' # 0x83 -> LATIN SMALL LETTER C
- 'd' # 0x84 -> LATIN SMALL LETTER D
- 'e' # 0x85 -> LATIN SMALL LETTER E
- 'f' # 0x86 -> LATIN SMALL LETTER F
- 'g' # 0x87 -> LATIN SMALL LETTER G
- 'h' # 0x88 -> LATIN SMALL LETTER H
- 'i' # 0x89 -> LATIN SMALL LETTER I
- '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xf0' # 0x8C -> LATIN SMALL LETTER ETH (Icelandic)
- '\xfd' # 0x8D -> LATIN SMALL LETTER Y WITH ACUTE
- '\xfe' # 0x8E -> LATIN SMALL LETTER THORN (Icelandic)
- '\xb1' # 0x8F -> PLUS-MINUS SIGN
- '\xb0' # 0x90 -> DEGREE SIGN
- 'j' # 0x91 -> LATIN SMALL LETTER J
- 'k' # 0x92 -> LATIN SMALL LETTER K
- 'l' # 0x93 -> LATIN SMALL LETTER L
- 'm' # 0x94 -> LATIN SMALL LETTER M
- 'n' # 0x95 -> LATIN SMALL LETTER N
- 'o' # 0x96 -> LATIN SMALL LETTER O
- 'p' # 0x97 -> LATIN SMALL LETTER P
- 'q' # 0x98 -> LATIN SMALL LETTER Q
- 'r' # 0x99 -> LATIN SMALL LETTER R
- '\xaa' # 0x9A -> FEMININE ORDINAL INDICATOR
- '\xba' # 0x9B -> MASCULINE ORDINAL INDICATOR
- '\xe6' # 0x9C -> LATIN SMALL LETTER AE
- '\xb8' # 0x9D -> CEDILLA
- '\xc6' # 0x9E -> LATIN CAPITAL LETTER AE
- '\xa4' # 0x9F -> CURRENCY SIGN
- '\xb5' # 0xA0 -> MICRO SIGN
- '\xdf' # 0xA1 -> LATIN SMALL LETTER SHARP S (German)
- 's' # 0xA2 -> LATIN SMALL LETTER S
- 't' # 0xA3 -> LATIN SMALL LETTER T
- 'u' # 0xA4 -> LATIN SMALL LETTER U
- 'v' # 0xA5 -> LATIN SMALL LETTER V
- 'w' # 0xA6 -> LATIN SMALL LETTER W
- 'x' # 0xA7 -> LATIN SMALL LETTER X
- 'y' # 0xA8 -> LATIN SMALL LETTER Y
- 'z' # 0xA9 -> LATIN SMALL LETTER Z
- '\xa1' # 0xAA -> INVERTED EXCLAMATION MARK
- '\xbf' # 0xAB -> INVERTED QUESTION MARK
- '\xd0' # 0xAC -> LATIN CAPITAL LETTER ETH (Icelandic)
- '\xdd' # 0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\xde' # 0xAE -> LATIN CAPITAL LETTER THORN (Icelandic)
- '\xae' # 0xAF -> REGISTERED SIGN
- '\xa2' # 0xB0 -> CENT SIGN
- '\xa3' # 0xB1 -> POUND SIGN
- '\xa5' # 0xB2 -> YEN SIGN
- '\xb7' # 0xB3 -> MIDDLE DOT
- '\xa9' # 0xB4 -> COPYRIGHT SIGN
- '@' # 0xB5 -> COMMERCIAL AT
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
- '\xac' # 0xBA -> NOT SIGN
- '|' # 0xBB -> VERTICAL LINE
- '\u203e' # 0xBC -> OVERLINE
- '\xa8' # 0xBD -> DIAERESIS
- '\xb4' # 0xBE -> ACUTE ACCENT
- '\xd7' # 0xBF -> MULTIPLICATION SIGN
- '\xe4' # 0xC0 -> LATIN SMALL LETTER A WITH DIAERESIS
- 'A' # 0xC1 -> LATIN CAPITAL LETTER A
- 'B' # 0xC2 -> LATIN CAPITAL LETTER B
- 'C' # 0xC3 -> LATIN CAPITAL LETTER C
- 'D' # 0xC4 -> LATIN CAPITAL LETTER D
- 'E' # 0xC5 -> LATIN CAPITAL LETTER E
- 'F' # 0xC6 -> LATIN CAPITAL LETTER F
- 'G' # 0xC7 -> LATIN CAPITAL LETTER G
- 'H' # 0xC8 -> LATIN CAPITAL LETTER H
- 'I' # 0xC9 -> LATIN CAPITAL LETTER I
- '\xad' # 0xCA -> SOFT HYPHEN
- '\xf4' # 0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xa6' # 0xCC -> BROKEN BAR
- '\xf2' # 0xCD -> LATIN SMALL LETTER O WITH GRAVE
- '\xf3' # 0xCE -> LATIN SMALL LETTER O WITH ACUTE
- '\xf5' # 0xCF -> LATIN SMALL LETTER O WITH TILDE
- '\xfc' # 0xD0 -> LATIN SMALL LETTER U WITH DIAERESIS
- 'J' # 0xD1 -> LATIN CAPITAL LETTER J
- 'K' # 0xD2 -> LATIN CAPITAL LETTER K
- 'L' # 0xD3 -> LATIN CAPITAL LETTER L
- 'M' # 0xD4 -> LATIN CAPITAL LETTER M
- 'N' # 0xD5 -> LATIN CAPITAL LETTER N
- 'O' # 0xD6 -> LATIN CAPITAL LETTER O
- 'P' # 0xD7 -> LATIN CAPITAL LETTER P
- 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
- 'R' # 0xD9 -> LATIN CAPITAL LETTER R
- '\xb9' # 0xDA -> SUPERSCRIPT ONE
- '\xfb' # 0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '}' # 0xDC -> RIGHT CURLY BRACKET
- '\xf9' # 0xDD -> LATIN SMALL LETTER U WITH GRAVE
- '\xfa' # 0xDE -> LATIN SMALL LETTER U WITH ACUTE
- '\xff' # 0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
- '\xd6' # 0xE0 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xf7' # 0xE1 -> DIVISION SIGN
- 'S' # 0xE2 -> LATIN CAPITAL LETTER S
- 'T' # 0xE3 -> LATIN CAPITAL LETTER T
- 'U' # 0xE4 -> LATIN CAPITAL LETTER U
- 'V' # 0xE5 -> LATIN CAPITAL LETTER V
- 'W' # 0xE6 -> LATIN CAPITAL LETTER W
- 'X' # 0xE7 -> LATIN CAPITAL LETTER X
- 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
- 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
- '\xb2' # 0xEA -> SUPERSCRIPT TWO
- '\xd4' # 0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\\' # 0xEC -> REVERSE SOLIDUS
- '\xd2' # 0xED -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd5' # 0xEF -> LATIN CAPITAL LETTER O WITH TILDE
- '0' # 0xF0 -> DIGIT ZERO
- '1' # 0xF1 -> DIGIT ONE
- '2' # 0xF2 -> DIGIT TWO
- '3' # 0xF3 -> DIGIT THREE
- '4' # 0xF4 -> DIGIT FOUR
- '5' # 0xF5 -> DIGIT FIVE
- '6' # 0xF6 -> DIGIT SIX
- '7' # 0xF7 -> DIGIT SEVEN
- '8' # 0xF8 -> DIGIT EIGHT
- '9' # 0xF9 -> DIGIT NINE
- '\xb3' # 0xFA -> SUPERSCRIPT THREE
- '\xdb' # 0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- ']' # 0xFC -> RIGHT SQUARE BRACKET
- '\xd9' # 0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xda' # 0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
- '\x9f' # 0xFF -> APPLICATION PROGRAM COMMAND (APC)
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp424.py b/EasyTrans/Lib/encodings/cp424.py
deleted file mode 100644
index 6753daf1..00000000
--- a/EasyTrans/Lib/encodings/cp424.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp424 generated from 'MAPPINGS/VENDORS/MISC/CP424.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp424',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x9c' # 0x04 -> SELECT
- '\t' # 0x05 -> HORIZONTAL TABULATION
- '\x86' # 0x06 -> REQUIRED NEW LINE
- '\x7f' # 0x07 -> DELETE
- '\x97' # 0x08 -> GRAPHIC ESCAPE
- '\x8d' # 0x09 -> SUPERSCRIPT
- '\x8e' # 0x0A -> REPEAT
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x9d' # 0x14 -> RESTORE/ENABLE PRESENTATION
- '\x85' # 0x15 -> NEW LINE
- '\x08' # 0x16 -> BACKSPACE
- '\x87' # 0x17 -> PROGRAM OPERATOR COMMUNICATION
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x92' # 0x1A -> UNIT BACK SPACE
- '\x8f' # 0x1B -> CUSTOMER USE ONE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- '\x80' # 0x20 -> DIGIT SELECT
- '\x81' # 0x21 -> START OF SIGNIFICANCE
- '\x82' # 0x22 -> FIELD SEPARATOR
- '\x83' # 0x23 -> WORD UNDERSCORE
- '\x84' # 0x24 -> BYPASS OR INHIBIT PRESENTATION
- '\n' # 0x25 -> LINE FEED
- '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
- '\x1b' # 0x27 -> ESCAPE
- '\x88' # 0x28 -> SET ATTRIBUTE
- '\x89' # 0x29 -> START FIELD EXTENDED
- '\x8a' # 0x2A -> SET MODE OR SWITCH
- '\x8b' # 0x2B -> CONTROL SEQUENCE PREFIX
- '\x8c' # 0x2C -> MODIFY FIELD ATTRIBUTE
- '\x05' # 0x2D -> ENQUIRY
- '\x06' # 0x2E -> ACKNOWLEDGE
- '\x07' # 0x2F -> BELL
- '\x90' # 0x30 ->
- '\x91' # 0x31 ->
- '\x16' # 0x32 -> SYNCHRONOUS IDLE
- '\x93' # 0x33 -> INDEX RETURN
- '\x94' # 0x34 -> PRESENTATION POSITION
- '\x95' # 0x35 -> TRANSPARENT
- '\x96' # 0x36 -> NUMERIC BACKSPACE
- '\x04' # 0x37 -> END OF TRANSMISSION
- '\x98' # 0x38 -> SUBSCRIPT
- '\x99' # 0x39 -> INDENT TABULATION
- '\x9a' # 0x3A -> REVERSE FORM FEED
- '\x9b' # 0x3B -> CUSTOMER USE THREE
- '\x14' # 0x3C -> DEVICE CONTROL FOUR
- '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
- '\x9e' # 0x3E ->
- '\x1a' # 0x3F -> SUBSTITUTE
- ' ' # 0x40 -> SPACE
- '\u05d0' # 0x41 -> HEBREW LETTER ALEF
- '\u05d1' # 0x42 -> HEBREW LETTER BET
- '\u05d2' # 0x43 -> HEBREW LETTER GIMEL
- '\u05d3' # 0x44 -> HEBREW LETTER DALET
- '\u05d4' # 0x45 -> HEBREW LETTER HE
- '\u05d5' # 0x46 -> HEBREW LETTER VAV
- '\u05d6' # 0x47 -> HEBREW LETTER ZAYIN
- '\u05d7' # 0x48 -> HEBREW LETTER HET
- '\u05d8' # 0x49 -> HEBREW LETTER TET
- '\xa2' # 0x4A -> CENT SIGN
- '.' # 0x4B -> FULL STOP
- '<' # 0x4C -> LESS-THAN SIGN
- '(' # 0x4D -> LEFT PARENTHESIS
- '+' # 0x4E -> PLUS SIGN
- '|' # 0x4F -> VERTICAL LINE
- '&' # 0x50 -> AMPERSAND
- '\u05d9' # 0x51 -> HEBREW LETTER YOD
- '\u05da' # 0x52 -> HEBREW LETTER FINAL KAF
- '\u05db' # 0x53 -> HEBREW LETTER KAF
- '\u05dc' # 0x54 -> HEBREW LETTER LAMED
- '\u05dd' # 0x55 -> HEBREW LETTER FINAL MEM
- '\u05de' # 0x56 -> HEBREW LETTER MEM
- '\u05df' # 0x57 -> HEBREW LETTER FINAL NUN
- '\u05e0' # 0x58 -> HEBREW LETTER NUN
- '\u05e1' # 0x59 -> HEBREW LETTER SAMEKH
- '!' # 0x5A -> EXCLAMATION MARK
- '$' # 0x5B -> DOLLAR SIGN
- '*' # 0x5C -> ASTERISK
- ')' # 0x5D -> RIGHT PARENTHESIS
- ';' # 0x5E -> SEMICOLON
- '\xac' # 0x5F -> NOT SIGN
- '-' # 0x60 -> HYPHEN-MINUS
- '/' # 0x61 -> SOLIDUS
- '\u05e2' # 0x62 -> HEBREW LETTER AYIN
- '\u05e3' # 0x63 -> HEBREW LETTER FINAL PE
- '\u05e4' # 0x64 -> HEBREW LETTER PE
- '\u05e5' # 0x65 -> HEBREW LETTER FINAL TSADI
- '\u05e6' # 0x66 -> HEBREW LETTER TSADI
- '\u05e7' # 0x67 -> HEBREW LETTER QOF
- '\u05e8' # 0x68 -> HEBREW LETTER RESH
- '\u05e9' # 0x69 -> HEBREW LETTER SHIN
- '\xa6' # 0x6A -> BROKEN BAR
- ',' # 0x6B -> COMMA
- '%' # 0x6C -> PERCENT SIGN
- '_' # 0x6D -> LOW LINE
- '>' # 0x6E -> GREATER-THAN SIGN
- '?' # 0x6F -> QUESTION MARK
- '\ufffe' # 0x70 -> UNDEFINED
- '\u05ea' # 0x71 -> HEBREW LETTER TAV
- '\ufffe' # 0x72 -> UNDEFINED
- '\ufffe' # 0x73 -> UNDEFINED
- '\xa0' # 0x74 -> NO-BREAK SPACE
- '\ufffe' # 0x75 -> UNDEFINED
- '\ufffe' # 0x76 -> UNDEFINED
- '\ufffe' # 0x77 -> UNDEFINED
- '\u2017' # 0x78 -> DOUBLE LOW LINE
- '`' # 0x79 -> GRAVE ACCENT
- ':' # 0x7A -> COLON
- '#' # 0x7B -> NUMBER SIGN
- '@' # 0x7C -> COMMERCIAL AT
- "'" # 0x7D -> APOSTROPHE
- '=' # 0x7E -> EQUALS SIGN
- '"' # 0x7F -> QUOTATION MARK
- '\ufffe' # 0x80 -> UNDEFINED
- 'a' # 0x81 -> LATIN SMALL LETTER A
- 'b' # 0x82 -> LATIN SMALL LETTER B
- 'c' # 0x83 -> LATIN SMALL LETTER C
- 'd' # 0x84 -> LATIN SMALL LETTER D
- 'e' # 0x85 -> LATIN SMALL LETTER E
- 'f' # 0x86 -> LATIN SMALL LETTER F
- 'g' # 0x87 -> LATIN SMALL LETTER G
- 'h' # 0x88 -> LATIN SMALL LETTER H
- 'i' # 0x89 -> LATIN SMALL LETTER I
- '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\ufffe' # 0x8C -> UNDEFINED
- '\ufffe' # 0x8D -> UNDEFINED
- '\ufffe' # 0x8E -> UNDEFINED
- '\xb1' # 0x8F -> PLUS-MINUS SIGN
- '\xb0' # 0x90 -> DEGREE SIGN
- 'j' # 0x91 -> LATIN SMALL LETTER J
- 'k' # 0x92 -> LATIN SMALL LETTER K
- 'l' # 0x93 -> LATIN SMALL LETTER L
- 'm' # 0x94 -> LATIN SMALL LETTER M
- 'n' # 0x95 -> LATIN SMALL LETTER N
- 'o' # 0x96 -> LATIN SMALL LETTER O
- 'p' # 0x97 -> LATIN SMALL LETTER P
- 'q' # 0x98 -> LATIN SMALL LETTER Q
- 'r' # 0x99 -> LATIN SMALL LETTER R
- '\ufffe' # 0x9A -> UNDEFINED
- '\ufffe' # 0x9B -> UNDEFINED
- '\ufffe' # 0x9C -> UNDEFINED
- '\xb8' # 0x9D -> CEDILLA
- '\ufffe' # 0x9E -> UNDEFINED
- '\xa4' # 0x9F -> CURRENCY SIGN
- '\xb5' # 0xA0 -> MICRO SIGN
- '~' # 0xA1 -> TILDE
- 's' # 0xA2 -> LATIN SMALL LETTER S
- 't' # 0xA3 -> LATIN SMALL LETTER T
- 'u' # 0xA4 -> LATIN SMALL LETTER U
- 'v' # 0xA5 -> LATIN SMALL LETTER V
- 'w' # 0xA6 -> LATIN SMALL LETTER W
- 'x' # 0xA7 -> LATIN SMALL LETTER X
- 'y' # 0xA8 -> LATIN SMALL LETTER Y
- 'z' # 0xA9 -> LATIN SMALL LETTER Z
- '\ufffe' # 0xAA -> UNDEFINED
- '\ufffe' # 0xAB -> UNDEFINED
- '\ufffe' # 0xAC -> UNDEFINED
- '\ufffe' # 0xAD -> UNDEFINED
- '\ufffe' # 0xAE -> UNDEFINED
- '\xae' # 0xAF -> REGISTERED SIGN
- '^' # 0xB0 -> CIRCUMFLEX ACCENT
- '\xa3' # 0xB1 -> POUND SIGN
- '\xa5' # 0xB2 -> YEN SIGN
- '\xb7' # 0xB3 -> MIDDLE DOT
- '\xa9' # 0xB4 -> COPYRIGHT SIGN
- '\xa7' # 0xB5 -> SECTION SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
- '[' # 0xBA -> LEFT SQUARE BRACKET
- ']' # 0xBB -> RIGHT SQUARE BRACKET
- '\xaf' # 0xBC -> MACRON
- '\xa8' # 0xBD -> DIAERESIS
- '\xb4' # 0xBE -> ACUTE ACCENT
- '\xd7' # 0xBF -> MULTIPLICATION SIGN
- '{' # 0xC0 -> LEFT CURLY BRACKET
- 'A' # 0xC1 -> LATIN CAPITAL LETTER A
- 'B' # 0xC2 -> LATIN CAPITAL LETTER B
- 'C' # 0xC3 -> LATIN CAPITAL LETTER C
- 'D' # 0xC4 -> LATIN CAPITAL LETTER D
- 'E' # 0xC5 -> LATIN CAPITAL LETTER E
- 'F' # 0xC6 -> LATIN CAPITAL LETTER F
- 'G' # 0xC7 -> LATIN CAPITAL LETTER G
- 'H' # 0xC8 -> LATIN CAPITAL LETTER H
- 'I' # 0xC9 -> LATIN CAPITAL LETTER I
- '\xad' # 0xCA -> SOFT HYPHEN
- '\ufffe' # 0xCB -> UNDEFINED
- '\ufffe' # 0xCC -> UNDEFINED
- '\ufffe' # 0xCD -> UNDEFINED
- '\ufffe' # 0xCE -> UNDEFINED
- '\ufffe' # 0xCF -> UNDEFINED
- '}' # 0xD0 -> RIGHT CURLY BRACKET
- 'J' # 0xD1 -> LATIN CAPITAL LETTER J
- 'K' # 0xD2 -> LATIN CAPITAL LETTER K
- 'L' # 0xD3 -> LATIN CAPITAL LETTER L
- 'M' # 0xD4 -> LATIN CAPITAL LETTER M
- 'N' # 0xD5 -> LATIN CAPITAL LETTER N
- 'O' # 0xD6 -> LATIN CAPITAL LETTER O
- 'P' # 0xD7 -> LATIN CAPITAL LETTER P
- 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
- 'R' # 0xD9 -> LATIN CAPITAL LETTER R
- '\xb9' # 0xDA -> SUPERSCRIPT ONE
- '\ufffe' # 0xDB -> UNDEFINED
- '\ufffe' # 0xDC -> UNDEFINED
- '\ufffe' # 0xDD -> UNDEFINED
- '\ufffe' # 0xDE -> UNDEFINED
- '\ufffe' # 0xDF -> UNDEFINED
- '\\' # 0xE0 -> REVERSE SOLIDUS
- '\xf7' # 0xE1 -> DIVISION SIGN
- 'S' # 0xE2 -> LATIN CAPITAL LETTER S
- 'T' # 0xE3 -> LATIN CAPITAL LETTER T
- 'U' # 0xE4 -> LATIN CAPITAL LETTER U
- 'V' # 0xE5 -> LATIN CAPITAL LETTER V
- 'W' # 0xE6 -> LATIN CAPITAL LETTER W
- 'X' # 0xE7 -> LATIN CAPITAL LETTER X
- 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
- 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
- '\xb2' # 0xEA -> SUPERSCRIPT TWO
- '\ufffe' # 0xEB -> UNDEFINED
- '\ufffe' # 0xEC -> UNDEFINED
- '\ufffe' # 0xED -> UNDEFINED
- '\ufffe' # 0xEE -> UNDEFINED
- '\ufffe' # 0xEF -> UNDEFINED
- '0' # 0xF0 -> DIGIT ZERO
- '1' # 0xF1 -> DIGIT ONE
- '2' # 0xF2 -> DIGIT TWO
- '3' # 0xF3 -> DIGIT THREE
- '4' # 0xF4 -> DIGIT FOUR
- '5' # 0xF5 -> DIGIT FIVE
- '6' # 0xF6 -> DIGIT SIX
- '7' # 0xF7 -> DIGIT SEVEN
- '8' # 0xF8 -> DIGIT EIGHT
- '9' # 0xF9 -> DIGIT NINE
- '\xb3' # 0xFA -> SUPERSCRIPT THREE
- '\ufffe' # 0xFB -> UNDEFINED
- '\ufffe' # 0xFC -> UNDEFINED
- '\ufffe' # 0xFD -> UNDEFINED
- '\ufffe' # 0xFE -> UNDEFINED
- '\x9f' # 0xFF -> EIGHT ONES
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp437.py b/EasyTrans/Lib/encodings/cp437.py
deleted file mode 100644
index b6c75e2c..00000000
--- a/EasyTrans/Lib/encodings/cp437.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec cp437 generated from 'VENDORS/MICSFT/PC/CP437.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp437',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
- 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
- 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
- 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
- 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x008d: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
- 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
- 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
- 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
- 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
- 0x0098: 0x00ff, # LATIN SMALL LETTER Y WITH DIAERESIS
- 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x009b: 0x00a2, # CENT SIGN
- 0x009c: 0x00a3, # POUND SIGN
- 0x009d: 0x00a5, # YEN SIGN
- 0x009e: 0x20a7, # PESETA SIGN
- 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
- 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
- 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
- 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
- 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
- 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
- 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
- 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
- 0x00a8: 0x00bf, # INVERTED QUESTION MARK
- 0x00a9: 0x2310, # REVERSED NOT SIGN
- 0x00aa: 0x00ac, # NOT SIGN
- 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
- 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
- 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x258c, # LEFT HALF BLOCK
- 0x00de: 0x2590, # RIGHT HALF BLOCK
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
- 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
- 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
- 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
- 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
- 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
- 0x00e6: 0x00b5, # MICRO SIGN
- 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
- 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
- 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
- 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
- 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
- 0x00ec: 0x221e, # INFINITY
- 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
- 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
- 0x00ef: 0x2229, # INTERSECTION
- 0x00f0: 0x2261, # IDENTICAL TO
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
- 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
- 0x00f4: 0x2320, # TOP HALF INTEGRAL
- 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x2248, # ALMOST EQUAL TO
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x2219, # BULLET OPERATOR
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x221a, # SQUARE ROOT
- 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x00fd: 0x00b2, # SUPERSCRIPT TWO
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
- '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
- '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xec' # 0x008d -> LATIN SMALL LETTER I WITH GRAVE
- '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
- '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
- '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
- '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
- '\xff' # 0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
- '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xa2' # 0x009b -> CENT SIGN
- '\xa3' # 0x009c -> POUND SIGN
- '\xa5' # 0x009d -> YEN SIGN
- '\u20a7' # 0x009e -> PESETA SIGN
- '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
- '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
- '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
- '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
- '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
- '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
- '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
- '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
- '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
- '\u2310' # 0x00a9 -> REVERSED NOT SIGN
- '\xac' # 0x00aa -> NOT SIGN
- '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
- '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
- '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u258c' # 0x00dd -> LEFT HALF BLOCK
- '\u2590' # 0x00de -> RIGHT HALF BLOCK
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
- '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
- '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
- '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
- '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
- '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
- '\xb5' # 0x00e6 -> MICRO SIGN
- '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
- '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
- '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
- '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
- '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
- '\u221e' # 0x00ec -> INFINITY
- '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
- '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
- '\u2229' # 0x00ef -> INTERSECTION
- '\u2261' # 0x00f0 -> IDENTICAL TO
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
- '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
- '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
- '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\u2248' # 0x00f7 -> ALMOST EQUAL TO
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\u2219' # 0x00f9 -> BULLET OPERATOR
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\u221a' # 0x00fb -> SQUARE ROOT
- '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
- '\xb2' # 0x00fd -> SUPERSCRIPT TWO
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
- 0x00a2: 0x009b, # CENT SIGN
- 0x00a3: 0x009c, # POUND SIGN
- 0x00a5: 0x009d, # YEN SIGN
- 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x00aa, # NOT SIGN
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x00fd, # SUPERSCRIPT TWO
- 0x00b5: 0x00e6, # MICRO SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
- 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
- 0x00bf: 0x00a8, # INVERTED QUESTION MARK
- 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
- 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
- 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
- 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
- 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
- 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
- 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
- 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
- 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x00ec: 0x008d, # LATIN SMALL LETTER I WITH GRAVE
- 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
- 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
- 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
- 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
- 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
- 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
- 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x00ff: 0x0098, # LATIN SMALL LETTER Y WITH DIAERESIS
- 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
- 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
- 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
- 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
- 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
- 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
- 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
- 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
- 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
- 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
- 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
- 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
- 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
- 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x20a7: 0x009e, # PESETA SIGN
- 0x2219: 0x00f9, # BULLET OPERATOR
- 0x221a: 0x00fb, # SQUARE ROOT
- 0x221e: 0x00ec, # INFINITY
- 0x2229: 0x00ef, # INTERSECTION
- 0x2248: 0x00f7, # ALMOST EQUAL TO
- 0x2261: 0x00f0, # IDENTICAL TO
- 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
- 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
- 0x2310: 0x00a9, # REVERSED NOT SIGN
- 0x2320: 0x00f4, # TOP HALF INTEGRAL
- 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x258c: 0x00dd, # LEFT HALF BLOCK
- 0x2590: 0x00de, # RIGHT HALF BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp500.py b/EasyTrans/Lib/encodings/cp500.py
deleted file mode 100644
index 5f61535f..00000000
--- a/EasyTrans/Lib/encodings/cp500.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp500 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP500.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp500',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x9c' # 0x04 -> CONTROL
- '\t' # 0x05 -> HORIZONTAL TABULATION
- '\x86' # 0x06 -> CONTROL
- '\x7f' # 0x07 -> DELETE
- '\x97' # 0x08 -> CONTROL
- '\x8d' # 0x09 -> CONTROL
- '\x8e' # 0x0A -> CONTROL
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x9d' # 0x14 -> CONTROL
- '\x85' # 0x15 -> CONTROL
- '\x08' # 0x16 -> BACKSPACE
- '\x87' # 0x17 -> CONTROL
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x92' # 0x1A -> CONTROL
- '\x8f' # 0x1B -> CONTROL
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- '\x80' # 0x20 -> CONTROL
- '\x81' # 0x21 -> CONTROL
- '\x82' # 0x22 -> CONTROL
- '\x83' # 0x23 -> CONTROL
- '\x84' # 0x24 -> CONTROL
- '\n' # 0x25 -> LINE FEED
- '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
- '\x1b' # 0x27 -> ESCAPE
- '\x88' # 0x28 -> CONTROL
- '\x89' # 0x29 -> CONTROL
- '\x8a' # 0x2A -> CONTROL
- '\x8b' # 0x2B -> CONTROL
- '\x8c' # 0x2C -> CONTROL
- '\x05' # 0x2D -> ENQUIRY
- '\x06' # 0x2E -> ACKNOWLEDGE
- '\x07' # 0x2F -> BELL
- '\x90' # 0x30 -> CONTROL
- '\x91' # 0x31 -> CONTROL
- '\x16' # 0x32 -> SYNCHRONOUS IDLE
- '\x93' # 0x33 -> CONTROL
- '\x94' # 0x34 -> CONTROL
- '\x95' # 0x35 -> CONTROL
- '\x96' # 0x36 -> CONTROL
- '\x04' # 0x37 -> END OF TRANSMISSION
- '\x98' # 0x38 -> CONTROL
- '\x99' # 0x39 -> CONTROL
- '\x9a' # 0x3A -> CONTROL
- '\x9b' # 0x3B -> CONTROL
- '\x14' # 0x3C -> DEVICE CONTROL FOUR
- '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
- '\x9e' # 0x3E -> CONTROL
- '\x1a' # 0x3F -> SUBSTITUTE
- ' ' # 0x40 -> SPACE
- '\xa0' # 0x41 -> NO-BREAK SPACE
- '\xe2' # 0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe4' # 0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe0' # 0x44 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe1' # 0x45 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe3' # 0x46 -> LATIN SMALL LETTER A WITH TILDE
- '\xe5' # 0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe7' # 0x48 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xf1' # 0x49 -> LATIN SMALL LETTER N WITH TILDE
- '[' # 0x4A -> LEFT SQUARE BRACKET
- '.' # 0x4B -> FULL STOP
- '<' # 0x4C -> LESS-THAN SIGN
- '(' # 0x4D -> LEFT PARENTHESIS
- '+' # 0x4E -> PLUS SIGN
- '!' # 0x4F -> EXCLAMATION MARK
- '&' # 0x50 -> AMPERSAND
- '\xe9' # 0x51 -> LATIN SMALL LETTER E WITH ACUTE
- '\xea' # 0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x54 -> LATIN SMALL LETTER E WITH GRAVE
- '\xed' # 0x55 -> LATIN SMALL LETTER I WITH ACUTE
- '\xee' # 0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xef' # 0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xec' # 0x58 -> LATIN SMALL LETTER I WITH GRAVE
- '\xdf' # 0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
- ']' # 0x5A -> RIGHT SQUARE BRACKET
- '$' # 0x5B -> DOLLAR SIGN
- '*' # 0x5C -> ASTERISK
- ')' # 0x5D -> RIGHT PARENTHESIS
- ';' # 0x5E -> SEMICOLON
- '^' # 0x5F -> CIRCUMFLEX ACCENT
- '-' # 0x60 -> HYPHEN-MINUS
- '/' # 0x61 -> SOLIDUS
- '\xc2' # 0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc4' # 0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc0' # 0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xc1' # 0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc3' # 0x66 -> LATIN CAPITAL LETTER A WITH TILDE
- '\xc5' # 0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc7' # 0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xd1' # 0x69 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xa6' # 0x6A -> BROKEN BAR
- ',' # 0x6B -> COMMA
- '%' # 0x6C -> PERCENT SIGN
- '_' # 0x6D -> LOW LINE
- '>' # 0x6E -> GREATER-THAN SIGN
- '?' # 0x6F -> QUESTION MARK
- '\xf8' # 0x70 -> LATIN SMALL LETTER O WITH STROKE
- '\xc9' # 0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xca' # 0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xc8' # 0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xcd' # 0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\xcc' # 0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
- '`' # 0x79 -> GRAVE ACCENT
- ':' # 0x7A -> COLON
- '#' # 0x7B -> NUMBER SIGN
- '@' # 0x7C -> COMMERCIAL AT
- "'" # 0x7D -> APOSTROPHE
- '=' # 0x7E -> EQUALS SIGN
- '"' # 0x7F -> QUOTATION MARK
- '\xd8' # 0x80 -> LATIN CAPITAL LETTER O WITH STROKE
- 'a' # 0x81 -> LATIN SMALL LETTER A
- 'b' # 0x82 -> LATIN SMALL LETTER B
- 'c' # 0x83 -> LATIN SMALL LETTER C
- 'd' # 0x84 -> LATIN SMALL LETTER D
- 'e' # 0x85 -> LATIN SMALL LETTER E
- 'f' # 0x86 -> LATIN SMALL LETTER F
- 'g' # 0x87 -> LATIN SMALL LETTER G
- 'h' # 0x88 -> LATIN SMALL LETTER H
- 'i' # 0x89 -> LATIN SMALL LETTER I
- '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xf0' # 0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
- '\xfd' # 0x8D -> LATIN SMALL LETTER Y WITH ACUTE
- '\xfe' # 0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
- '\xb1' # 0x8F -> PLUS-MINUS SIGN
- '\xb0' # 0x90 -> DEGREE SIGN
- 'j' # 0x91 -> LATIN SMALL LETTER J
- 'k' # 0x92 -> LATIN SMALL LETTER K
- 'l' # 0x93 -> LATIN SMALL LETTER L
- 'm' # 0x94 -> LATIN SMALL LETTER M
- 'n' # 0x95 -> LATIN SMALL LETTER N
- 'o' # 0x96 -> LATIN SMALL LETTER O
- 'p' # 0x97 -> LATIN SMALL LETTER P
- 'q' # 0x98 -> LATIN SMALL LETTER Q
- 'r' # 0x99 -> LATIN SMALL LETTER R
- '\xaa' # 0x9A -> FEMININE ORDINAL INDICATOR
- '\xba' # 0x9B -> MASCULINE ORDINAL INDICATOR
- '\xe6' # 0x9C -> LATIN SMALL LIGATURE AE
- '\xb8' # 0x9D -> CEDILLA
- '\xc6' # 0x9E -> LATIN CAPITAL LIGATURE AE
- '\xa4' # 0x9F -> CURRENCY SIGN
- '\xb5' # 0xA0 -> MICRO SIGN
- '~' # 0xA1 -> TILDE
- 's' # 0xA2 -> LATIN SMALL LETTER S
- 't' # 0xA3 -> LATIN SMALL LETTER T
- 'u' # 0xA4 -> LATIN SMALL LETTER U
- 'v' # 0xA5 -> LATIN SMALL LETTER V
- 'w' # 0xA6 -> LATIN SMALL LETTER W
- 'x' # 0xA7 -> LATIN SMALL LETTER X
- 'y' # 0xA8 -> LATIN SMALL LETTER Y
- 'z' # 0xA9 -> LATIN SMALL LETTER Z
- '\xa1' # 0xAA -> INVERTED EXCLAMATION MARK
- '\xbf' # 0xAB -> INVERTED QUESTION MARK
- '\xd0' # 0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
- '\xdd' # 0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\xde' # 0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
- '\xae' # 0xAF -> REGISTERED SIGN
- '\xa2' # 0xB0 -> CENT SIGN
- '\xa3' # 0xB1 -> POUND SIGN
- '\xa5' # 0xB2 -> YEN SIGN
- '\xb7' # 0xB3 -> MIDDLE DOT
- '\xa9' # 0xB4 -> COPYRIGHT SIGN
- '\xa7' # 0xB5 -> SECTION SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
- '\xac' # 0xBA -> NOT SIGN
- '|' # 0xBB -> VERTICAL LINE
- '\xaf' # 0xBC -> MACRON
- '\xa8' # 0xBD -> DIAERESIS
- '\xb4' # 0xBE -> ACUTE ACCENT
- '\xd7' # 0xBF -> MULTIPLICATION SIGN
- '{' # 0xC0 -> LEFT CURLY BRACKET
- 'A' # 0xC1 -> LATIN CAPITAL LETTER A
- 'B' # 0xC2 -> LATIN CAPITAL LETTER B
- 'C' # 0xC3 -> LATIN CAPITAL LETTER C
- 'D' # 0xC4 -> LATIN CAPITAL LETTER D
- 'E' # 0xC5 -> LATIN CAPITAL LETTER E
- 'F' # 0xC6 -> LATIN CAPITAL LETTER F
- 'G' # 0xC7 -> LATIN CAPITAL LETTER G
- 'H' # 0xC8 -> LATIN CAPITAL LETTER H
- 'I' # 0xC9 -> LATIN CAPITAL LETTER I
- '\xad' # 0xCA -> SOFT HYPHEN
- '\xf4' # 0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf6' # 0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf2' # 0xCD -> LATIN SMALL LETTER O WITH GRAVE
- '\xf3' # 0xCE -> LATIN SMALL LETTER O WITH ACUTE
- '\xf5' # 0xCF -> LATIN SMALL LETTER O WITH TILDE
- '}' # 0xD0 -> RIGHT CURLY BRACKET
- 'J' # 0xD1 -> LATIN CAPITAL LETTER J
- 'K' # 0xD2 -> LATIN CAPITAL LETTER K
- 'L' # 0xD3 -> LATIN CAPITAL LETTER L
- 'M' # 0xD4 -> LATIN CAPITAL LETTER M
- 'N' # 0xD5 -> LATIN CAPITAL LETTER N
- 'O' # 0xD6 -> LATIN CAPITAL LETTER O
- 'P' # 0xD7 -> LATIN CAPITAL LETTER P
- 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
- 'R' # 0xD9 -> LATIN CAPITAL LETTER R
- '\xb9' # 0xDA -> SUPERSCRIPT ONE
- '\xfb' # 0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xfc' # 0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xf9' # 0xDD -> LATIN SMALL LETTER U WITH GRAVE
- '\xfa' # 0xDE -> LATIN SMALL LETTER U WITH ACUTE
- '\xff' # 0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
- '\\' # 0xE0 -> REVERSE SOLIDUS
- '\xf7' # 0xE1 -> DIVISION SIGN
- 'S' # 0xE2 -> LATIN CAPITAL LETTER S
- 'T' # 0xE3 -> LATIN CAPITAL LETTER T
- 'U' # 0xE4 -> LATIN CAPITAL LETTER U
- 'V' # 0xE5 -> LATIN CAPITAL LETTER V
- 'W' # 0xE6 -> LATIN CAPITAL LETTER W
- 'X' # 0xE7 -> LATIN CAPITAL LETTER X
- 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
- 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
- '\xb2' # 0xEA -> SUPERSCRIPT TWO
- '\xd4' # 0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xd6' # 0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xd2' # 0xED -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd5' # 0xEF -> LATIN CAPITAL LETTER O WITH TILDE
- '0' # 0xF0 -> DIGIT ZERO
- '1' # 0xF1 -> DIGIT ONE
- '2' # 0xF2 -> DIGIT TWO
- '3' # 0xF3 -> DIGIT THREE
- '4' # 0xF4 -> DIGIT FOUR
- '5' # 0xF5 -> DIGIT FIVE
- '6' # 0xF6 -> DIGIT SIX
- '7' # 0xF7 -> DIGIT SEVEN
- '8' # 0xF8 -> DIGIT EIGHT
- '9' # 0xF9 -> DIGIT NINE
- '\xb3' # 0xFA -> SUPERSCRIPT THREE
- '\xdb' # 0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\xdc' # 0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xd9' # 0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xda' # 0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
- '\x9f' # 0xFF -> CONTROL
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp65001.py b/EasyTrans/Lib/encodings/cp65001.py
deleted file mode 100644
index 95cb2aec..00000000
--- a/EasyTrans/Lib/encodings/cp65001.py
+++ /dev/null
@@ -1,43 +0,0 @@
-"""
-Code page 65001: Windows UTF-8 (CP_UTF8).
-"""
-
-import codecs
-import functools
-
-if not hasattr(codecs, 'code_page_encode'):
- raise LookupError("cp65001 encoding is only available on Windows")
-
-### Codec APIs
-
-encode = functools.partial(codecs.code_page_encode, 65001)
-_decode = functools.partial(codecs.code_page_decode, 65001)
-
-def decode(input, errors='strict'):
- return codecs.code_page_decode(65001, input, errors, True)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return encode(input, self.errors)[0]
-
-class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
- _buffer_decode = _decode
-
-class StreamWriter(codecs.StreamWriter):
- encode = encode
-
-class StreamReader(codecs.StreamReader):
- decode = _decode
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp65001',
- encode=encode,
- decode=decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/cp720.py b/EasyTrans/Lib/encodings/cp720.py
deleted file mode 100644
index 96d60961..00000000
--- a/EasyTrans/Lib/encodings/cp720.py
+++ /dev/null
@@ -1,309 +0,0 @@
-"""Python Character Mapping Codec cp720 generated on Windows:
-Vista 6.0.6002 SP2 Multiprocessor Free with the command:
- python Tools/unicode/genwincodec.py 720
-"""#"
-
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp720',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> CONTROL CHARACTER
- '\x01' # 0x01 -> CONTROL CHARACTER
- '\x02' # 0x02 -> CONTROL CHARACTER
- '\x03' # 0x03 -> CONTROL CHARACTER
- '\x04' # 0x04 -> CONTROL CHARACTER
- '\x05' # 0x05 -> CONTROL CHARACTER
- '\x06' # 0x06 -> CONTROL CHARACTER
- '\x07' # 0x07 -> CONTROL CHARACTER
- '\x08' # 0x08 -> CONTROL CHARACTER
- '\t' # 0x09 -> CONTROL CHARACTER
- '\n' # 0x0A -> CONTROL CHARACTER
- '\x0b' # 0x0B -> CONTROL CHARACTER
- '\x0c' # 0x0C -> CONTROL CHARACTER
- '\r' # 0x0D -> CONTROL CHARACTER
- '\x0e' # 0x0E -> CONTROL CHARACTER
- '\x0f' # 0x0F -> CONTROL CHARACTER
- '\x10' # 0x10 -> CONTROL CHARACTER
- '\x11' # 0x11 -> CONTROL CHARACTER
- '\x12' # 0x12 -> CONTROL CHARACTER
- '\x13' # 0x13 -> CONTROL CHARACTER
- '\x14' # 0x14 -> CONTROL CHARACTER
- '\x15' # 0x15 -> CONTROL CHARACTER
- '\x16' # 0x16 -> CONTROL CHARACTER
- '\x17' # 0x17 -> CONTROL CHARACTER
- '\x18' # 0x18 -> CONTROL CHARACTER
- '\x19' # 0x19 -> CONTROL CHARACTER
- '\x1a' # 0x1A -> CONTROL CHARACTER
- '\x1b' # 0x1B -> CONTROL CHARACTER
- '\x1c' # 0x1C -> CONTROL CHARACTER
- '\x1d' # 0x1D -> CONTROL CHARACTER
- '\x1e' # 0x1E -> CONTROL CHARACTER
- '\x1f' # 0x1F -> CONTROL CHARACTER
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> CONTROL CHARACTER
- '\x80'
- '\x81'
- '\xe9' # 0x82 -> LATIN SMALL LETTER E WITH ACUTE
- '\xe2' # 0x83 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\x84'
- '\xe0' # 0x85 -> LATIN SMALL LETTER A WITH GRAVE
- '\x86'
- '\xe7' # 0x87 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xea' # 0x88 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x89 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x8A -> LATIN SMALL LETTER E WITH GRAVE
- '\xef' # 0x8B -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xee' # 0x8C -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\x8d'
- '\x8e'
- '\x8f'
- '\x90'
- '\u0651' # 0x91 -> ARABIC SHADDA
- '\u0652' # 0x92 -> ARABIC SUKUN
- '\xf4' # 0x93 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xa4' # 0x94 -> CURRENCY SIGN
- '\u0640' # 0x95 -> ARABIC TATWEEL
- '\xfb' # 0x96 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xf9' # 0x97 -> LATIN SMALL LETTER U WITH GRAVE
- '\u0621' # 0x98 -> ARABIC LETTER HAMZA
- '\u0622' # 0x99 -> ARABIC LETTER ALEF WITH MADDA ABOVE
- '\u0623' # 0x9A -> ARABIC LETTER ALEF WITH HAMZA ABOVE
- '\u0624' # 0x9B -> ARABIC LETTER WAW WITH HAMZA ABOVE
- '\xa3' # 0x9C -> POUND SIGN
- '\u0625' # 0x9D -> ARABIC LETTER ALEF WITH HAMZA BELOW
- '\u0626' # 0x9E -> ARABIC LETTER YEH WITH HAMZA ABOVE
- '\u0627' # 0x9F -> ARABIC LETTER ALEF
- '\u0628' # 0xA0 -> ARABIC LETTER BEH
- '\u0629' # 0xA1 -> ARABIC LETTER TEH MARBUTA
- '\u062a' # 0xA2 -> ARABIC LETTER TEH
- '\u062b' # 0xA3 -> ARABIC LETTER THEH
- '\u062c' # 0xA4 -> ARABIC LETTER JEEM
- '\u062d' # 0xA5 -> ARABIC LETTER HAH
- '\u062e' # 0xA6 -> ARABIC LETTER KHAH
- '\u062f' # 0xA7 -> ARABIC LETTER DAL
- '\u0630' # 0xA8 -> ARABIC LETTER THAL
- '\u0631' # 0xA9 -> ARABIC LETTER REH
- '\u0632' # 0xAA -> ARABIC LETTER ZAIN
- '\u0633' # 0xAB -> ARABIC LETTER SEEN
- '\u0634' # 0xAC -> ARABIC LETTER SHEEN
- '\u0635' # 0xAD -> ARABIC LETTER SAD
- '\xab' # 0xAE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0xAF -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0xB0 -> LIGHT SHADE
- '\u2592' # 0xB1 -> MEDIUM SHADE
- '\u2593' # 0xB2 -> DARK SHADE
- '\u2502' # 0xB3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0xB4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u2561' # 0xB5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- '\u2562' # 0xB6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- '\u2556' # 0xB7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- '\u2555' # 0xB8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- '\u2563' # 0xB9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0xBA -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0xBB -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0xBC -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u255c' # 0xBD -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- '\u255b' # 0xBE -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- '\u2510' # 0xBF -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0xC0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0xC1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0xC2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0xC3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0xC4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0xC5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u255e' # 0xC6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- '\u255f' # 0xC7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- '\u255a' # 0xC8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0xC9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0xCA -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0xCB -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0xCC -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0xCD -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0xCE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u2567' # 0xCF -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- '\u2568' # 0xD0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- '\u2564' # 0xD1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- '\u2565' # 0xD2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- '\u2559' # 0xD3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- '\u2558' # 0xD4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- '\u2552' # 0xD5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- '\u2553' # 0xD6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- '\u256b' # 0xD7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- '\u256a' # 0xD8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- '\u2518' # 0xD9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0xDA -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0xDB -> FULL BLOCK
- '\u2584' # 0xDC -> LOWER HALF BLOCK
- '\u258c' # 0xDD -> LEFT HALF BLOCK
- '\u2590' # 0xDE -> RIGHT HALF BLOCK
- '\u2580' # 0xDF -> UPPER HALF BLOCK
- '\u0636' # 0xE0 -> ARABIC LETTER DAD
- '\u0637' # 0xE1 -> ARABIC LETTER TAH
- '\u0638' # 0xE2 -> ARABIC LETTER ZAH
- '\u0639' # 0xE3 -> ARABIC LETTER AIN
- '\u063a' # 0xE4 -> ARABIC LETTER GHAIN
- '\u0641' # 0xE5 -> ARABIC LETTER FEH
- '\xb5' # 0xE6 -> MICRO SIGN
- '\u0642' # 0xE7 -> ARABIC LETTER QAF
- '\u0643' # 0xE8 -> ARABIC LETTER KAF
- '\u0644' # 0xE9 -> ARABIC LETTER LAM
- '\u0645' # 0xEA -> ARABIC LETTER MEEM
- '\u0646' # 0xEB -> ARABIC LETTER NOON
- '\u0647' # 0xEC -> ARABIC LETTER HEH
- '\u0648' # 0xED -> ARABIC LETTER WAW
- '\u0649' # 0xEE -> ARABIC LETTER ALEF MAKSURA
- '\u064a' # 0xEF -> ARABIC LETTER YEH
- '\u2261' # 0xF0 -> IDENTICAL TO
- '\u064b' # 0xF1 -> ARABIC FATHATAN
- '\u064c' # 0xF2 -> ARABIC DAMMATAN
- '\u064d' # 0xF3 -> ARABIC KASRATAN
- '\u064e' # 0xF4 -> ARABIC FATHA
- '\u064f' # 0xF5 -> ARABIC DAMMA
- '\u0650' # 0xF6 -> ARABIC KASRA
- '\u2248' # 0xF7 -> ALMOST EQUAL TO
- '\xb0' # 0xF8 -> DEGREE SIGN
- '\u2219' # 0xF9 -> BULLET OPERATOR
- '\xb7' # 0xFA -> MIDDLE DOT
- '\u221a' # 0xFB -> SQUARE ROOT
- '\u207f' # 0xFC -> SUPERSCRIPT LATIN SMALL LETTER N
- '\xb2' # 0xFD -> SUPERSCRIPT TWO
- '\u25a0' # 0xFE -> BLACK SQUARE
- '\xa0' # 0xFF -> NO-BREAK SPACE
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp737.py b/EasyTrans/Lib/encodings/cp737.py
deleted file mode 100644
index 9685bae7..00000000
--- a/EasyTrans/Lib/encodings/cp737.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec cp737 generated from 'VENDORS/MICSFT/PC/CP737.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp737',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x0391, # GREEK CAPITAL LETTER ALPHA
- 0x0081: 0x0392, # GREEK CAPITAL LETTER BETA
- 0x0082: 0x0393, # GREEK CAPITAL LETTER GAMMA
- 0x0083: 0x0394, # GREEK CAPITAL LETTER DELTA
- 0x0084: 0x0395, # GREEK CAPITAL LETTER EPSILON
- 0x0085: 0x0396, # GREEK CAPITAL LETTER ZETA
- 0x0086: 0x0397, # GREEK CAPITAL LETTER ETA
- 0x0087: 0x0398, # GREEK CAPITAL LETTER THETA
- 0x0088: 0x0399, # GREEK CAPITAL LETTER IOTA
- 0x0089: 0x039a, # GREEK CAPITAL LETTER KAPPA
- 0x008a: 0x039b, # GREEK CAPITAL LETTER LAMDA
- 0x008b: 0x039c, # GREEK CAPITAL LETTER MU
- 0x008c: 0x039d, # GREEK CAPITAL LETTER NU
- 0x008d: 0x039e, # GREEK CAPITAL LETTER XI
- 0x008e: 0x039f, # GREEK CAPITAL LETTER OMICRON
- 0x008f: 0x03a0, # GREEK CAPITAL LETTER PI
- 0x0090: 0x03a1, # GREEK CAPITAL LETTER RHO
- 0x0091: 0x03a3, # GREEK CAPITAL LETTER SIGMA
- 0x0092: 0x03a4, # GREEK CAPITAL LETTER TAU
- 0x0093: 0x03a5, # GREEK CAPITAL LETTER UPSILON
- 0x0094: 0x03a6, # GREEK CAPITAL LETTER PHI
- 0x0095: 0x03a7, # GREEK CAPITAL LETTER CHI
- 0x0096: 0x03a8, # GREEK CAPITAL LETTER PSI
- 0x0097: 0x03a9, # GREEK CAPITAL LETTER OMEGA
- 0x0098: 0x03b1, # GREEK SMALL LETTER ALPHA
- 0x0099: 0x03b2, # GREEK SMALL LETTER BETA
- 0x009a: 0x03b3, # GREEK SMALL LETTER GAMMA
- 0x009b: 0x03b4, # GREEK SMALL LETTER DELTA
- 0x009c: 0x03b5, # GREEK SMALL LETTER EPSILON
- 0x009d: 0x03b6, # GREEK SMALL LETTER ZETA
- 0x009e: 0x03b7, # GREEK SMALL LETTER ETA
- 0x009f: 0x03b8, # GREEK SMALL LETTER THETA
- 0x00a0: 0x03b9, # GREEK SMALL LETTER IOTA
- 0x00a1: 0x03ba, # GREEK SMALL LETTER KAPPA
- 0x00a2: 0x03bb, # GREEK SMALL LETTER LAMDA
- 0x00a3: 0x03bc, # GREEK SMALL LETTER MU
- 0x00a4: 0x03bd, # GREEK SMALL LETTER NU
- 0x00a5: 0x03be, # GREEK SMALL LETTER XI
- 0x00a6: 0x03bf, # GREEK SMALL LETTER OMICRON
- 0x00a7: 0x03c0, # GREEK SMALL LETTER PI
- 0x00a8: 0x03c1, # GREEK SMALL LETTER RHO
- 0x00a9: 0x03c3, # GREEK SMALL LETTER SIGMA
- 0x00aa: 0x03c2, # GREEK SMALL LETTER FINAL SIGMA
- 0x00ab: 0x03c4, # GREEK SMALL LETTER TAU
- 0x00ac: 0x03c5, # GREEK SMALL LETTER UPSILON
- 0x00ad: 0x03c6, # GREEK SMALL LETTER PHI
- 0x00ae: 0x03c7, # GREEK SMALL LETTER CHI
- 0x00af: 0x03c8, # GREEK SMALL LETTER PSI
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x258c, # LEFT HALF BLOCK
- 0x00de: 0x2590, # RIGHT HALF BLOCK
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x03c9, # GREEK SMALL LETTER OMEGA
- 0x00e1: 0x03ac, # GREEK SMALL LETTER ALPHA WITH TONOS
- 0x00e2: 0x03ad, # GREEK SMALL LETTER EPSILON WITH TONOS
- 0x00e3: 0x03ae, # GREEK SMALL LETTER ETA WITH TONOS
- 0x00e4: 0x03ca, # GREEK SMALL LETTER IOTA WITH DIALYTIKA
- 0x00e5: 0x03af, # GREEK SMALL LETTER IOTA WITH TONOS
- 0x00e6: 0x03cc, # GREEK SMALL LETTER OMICRON WITH TONOS
- 0x00e7: 0x03cd, # GREEK SMALL LETTER UPSILON WITH TONOS
- 0x00e8: 0x03cb, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
- 0x00e9: 0x03ce, # GREEK SMALL LETTER OMEGA WITH TONOS
- 0x00ea: 0x0386, # GREEK CAPITAL LETTER ALPHA WITH TONOS
- 0x00eb: 0x0388, # GREEK CAPITAL LETTER EPSILON WITH TONOS
- 0x00ec: 0x0389, # GREEK CAPITAL LETTER ETA WITH TONOS
- 0x00ed: 0x038a, # GREEK CAPITAL LETTER IOTA WITH TONOS
- 0x00ee: 0x038c, # GREEK CAPITAL LETTER OMICRON WITH TONOS
- 0x00ef: 0x038e, # GREEK CAPITAL LETTER UPSILON WITH TONOS
- 0x00f0: 0x038f, # GREEK CAPITAL LETTER OMEGA WITH TONOS
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
- 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
- 0x00f4: 0x03aa, # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
- 0x00f5: 0x03ab, # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x2248, # ALMOST EQUAL TO
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x2219, # BULLET OPERATOR
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x221a, # SQUARE ROOT
- 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x00fd: 0x00b2, # SUPERSCRIPT TWO
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\u0391' # 0x0080 -> GREEK CAPITAL LETTER ALPHA
- '\u0392' # 0x0081 -> GREEK CAPITAL LETTER BETA
- '\u0393' # 0x0082 -> GREEK CAPITAL LETTER GAMMA
- '\u0394' # 0x0083 -> GREEK CAPITAL LETTER DELTA
- '\u0395' # 0x0084 -> GREEK CAPITAL LETTER EPSILON
- '\u0396' # 0x0085 -> GREEK CAPITAL LETTER ZETA
- '\u0397' # 0x0086 -> GREEK CAPITAL LETTER ETA
- '\u0398' # 0x0087 -> GREEK CAPITAL LETTER THETA
- '\u0399' # 0x0088 -> GREEK CAPITAL LETTER IOTA
- '\u039a' # 0x0089 -> GREEK CAPITAL LETTER KAPPA
- '\u039b' # 0x008a -> GREEK CAPITAL LETTER LAMDA
- '\u039c' # 0x008b -> GREEK CAPITAL LETTER MU
- '\u039d' # 0x008c -> GREEK CAPITAL LETTER NU
- '\u039e' # 0x008d -> GREEK CAPITAL LETTER XI
- '\u039f' # 0x008e -> GREEK CAPITAL LETTER OMICRON
- '\u03a0' # 0x008f -> GREEK CAPITAL LETTER PI
- '\u03a1' # 0x0090 -> GREEK CAPITAL LETTER RHO
- '\u03a3' # 0x0091 -> GREEK CAPITAL LETTER SIGMA
- '\u03a4' # 0x0092 -> GREEK CAPITAL LETTER TAU
- '\u03a5' # 0x0093 -> GREEK CAPITAL LETTER UPSILON
- '\u03a6' # 0x0094 -> GREEK CAPITAL LETTER PHI
- '\u03a7' # 0x0095 -> GREEK CAPITAL LETTER CHI
- '\u03a8' # 0x0096 -> GREEK CAPITAL LETTER PSI
- '\u03a9' # 0x0097 -> GREEK CAPITAL LETTER OMEGA
- '\u03b1' # 0x0098 -> GREEK SMALL LETTER ALPHA
- '\u03b2' # 0x0099 -> GREEK SMALL LETTER BETA
- '\u03b3' # 0x009a -> GREEK SMALL LETTER GAMMA
- '\u03b4' # 0x009b -> GREEK SMALL LETTER DELTA
- '\u03b5' # 0x009c -> GREEK SMALL LETTER EPSILON
- '\u03b6' # 0x009d -> GREEK SMALL LETTER ZETA
- '\u03b7' # 0x009e -> GREEK SMALL LETTER ETA
- '\u03b8' # 0x009f -> GREEK SMALL LETTER THETA
- '\u03b9' # 0x00a0 -> GREEK SMALL LETTER IOTA
- '\u03ba' # 0x00a1 -> GREEK SMALL LETTER KAPPA
- '\u03bb' # 0x00a2 -> GREEK SMALL LETTER LAMDA
- '\u03bc' # 0x00a3 -> GREEK SMALL LETTER MU
- '\u03bd' # 0x00a4 -> GREEK SMALL LETTER NU
- '\u03be' # 0x00a5 -> GREEK SMALL LETTER XI
- '\u03bf' # 0x00a6 -> GREEK SMALL LETTER OMICRON
- '\u03c0' # 0x00a7 -> GREEK SMALL LETTER PI
- '\u03c1' # 0x00a8 -> GREEK SMALL LETTER RHO
- '\u03c3' # 0x00a9 -> GREEK SMALL LETTER SIGMA
- '\u03c2' # 0x00aa -> GREEK SMALL LETTER FINAL SIGMA
- '\u03c4' # 0x00ab -> GREEK SMALL LETTER TAU
- '\u03c5' # 0x00ac -> GREEK SMALL LETTER UPSILON
- '\u03c6' # 0x00ad -> GREEK SMALL LETTER PHI
- '\u03c7' # 0x00ae -> GREEK SMALL LETTER CHI
- '\u03c8' # 0x00af -> GREEK SMALL LETTER PSI
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u258c' # 0x00dd -> LEFT HALF BLOCK
- '\u2590' # 0x00de -> RIGHT HALF BLOCK
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\u03c9' # 0x00e0 -> GREEK SMALL LETTER OMEGA
- '\u03ac' # 0x00e1 -> GREEK SMALL LETTER ALPHA WITH TONOS
- '\u03ad' # 0x00e2 -> GREEK SMALL LETTER EPSILON WITH TONOS
- '\u03ae' # 0x00e3 -> GREEK SMALL LETTER ETA WITH TONOS
- '\u03ca' # 0x00e4 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
- '\u03af' # 0x00e5 -> GREEK SMALL LETTER IOTA WITH TONOS
- '\u03cc' # 0x00e6 -> GREEK SMALL LETTER OMICRON WITH TONOS
- '\u03cd' # 0x00e7 -> GREEK SMALL LETTER UPSILON WITH TONOS
- '\u03cb' # 0x00e8 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
- '\u03ce' # 0x00e9 -> GREEK SMALL LETTER OMEGA WITH TONOS
- '\u0386' # 0x00ea -> GREEK CAPITAL LETTER ALPHA WITH TONOS
- '\u0388' # 0x00eb -> GREEK CAPITAL LETTER EPSILON WITH TONOS
- '\u0389' # 0x00ec -> GREEK CAPITAL LETTER ETA WITH TONOS
- '\u038a' # 0x00ed -> GREEK CAPITAL LETTER IOTA WITH TONOS
- '\u038c' # 0x00ee -> GREEK CAPITAL LETTER OMICRON WITH TONOS
- '\u038e' # 0x00ef -> GREEK CAPITAL LETTER UPSILON WITH TONOS
- '\u038f' # 0x00f0 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
- '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
- '\u03aa' # 0x00f4 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
- '\u03ab' # 0x00f5 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\u2248' # 0x00f7 -> ALMOST EQUAL TO
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\u2219' # 0x00f9 -> BULLET OPERATOR
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\u221a' # 0x00fb -> SQUARE ROOT
- '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
- '\xb2' # 0x00fd -> SUPERSCRIPT TWO
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x00fd, # SUPERSCRIPT TWO
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x0386: 0x00ea, # GREEK CAPITAL LETTER ALPHA WITH TONOS
- 0x0388: 0x00eb, # GREEK CAPITAL LETTER EPSILON WITH TONOS
- 0x0389: 0x00ec, # GREEK CAPITAL LETTER ETA WITH TONOS
- 0x038a: 0x00ed, # GREEK CAPITAL LETTER IOTA WITH TONOS
- 0x038c: 0x00ee, # GREEK CAPITAL LETTER OMICRON WITH TONOS
- 0x038e: 0x00ef, # GREEK CAPITAL LETTER UPSILON WITH TONOS
- 0x038f: 0x00f0, # GREEK CAPITAL LETTER OMEGA WITH TONOS
- 0x0391: 0x0080, # GREEK CAPITAL LETTER ALPHA
- 0x0392: 0x0081, # GREEK CAPITAL LETTER BETA
- 0x0393: 0x0082, # GREEK CAPITAL LETTER GAMMA
- 0x0394: 0x0083, # GREEK CAPITAL LETTER DELTA
- 0x0395: 0x0084, # GREEK CAPITAL LETTER EPSILON
- 0x0396: 0x0085, # GREEK CAPITAL LETTER ZETA
- 0x0397: 0x0086, # GREEK CAPITAL LETTER ETA
- 0x0398: 0x0087, # GREEK CAPITAL LETTER THETA
- 0x0399: 0x0088, # GREEK CAPITAL LETTER IOTA
- 0x039a: 0x0089, # GREEK CAPITAL LETTER KAPPA
- 0x039b: 0x008a, # GREEK CAPITAL LETTER LAMDA
- 0x039c: 0x008b, # GREEK CAPITAL LETTER MU
- 0x039d: 0x008c, # GREEK CAPITAL LETTER NU
- 0x039e: 0x008d, # GREEK CAPITAL LETTER XI
- 0x039f: 0x008e, # GREEK CAPITAL LETTER OMICRON
- 0x03a0: 0x008f, # GREEK CAPITAL LETTER PI
- 0x03a1: 0x0090, # GREEK CAPITAL LETTER RHO
- 0x03a3: 0x0091, # GREEK CAPITAL LETTER SIGMA
- 0x03a4: 0x0092, # GREEK CAPITAL LETTER TAU
- 0x03a5: 0x0093, # GREEK CAPITAL LETTER UPSILON
- 0x03a6: 0x0094, # GREEK CAPITAL LETTER PHI
- 0x03a7: 0x0095, # GREEK CAPITAL LETTER CHI
- 0x03a8: 0x0096, # GREEK CAPITAL LETTER PSI
- 0x03a9: 0x0097, # GREEK CAPITAL LETTER OMEGA
- 0x03aa: 0x00f4, # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
- 0x03ab: 0x00f5, # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
- 0x03ac: 0x00e1, # GREEK SMALL LETTER ALPHA WITH TONOS
- 0x03ad: 0x00e2, # GREEK SMALL LETTER EPSILON WITH TONOS
- 0x03ae: 0x00e3, # GREEK SMALL LETTER ETA WITH TONOS
- 0x03af: 0x00e5, # GREEK SMALL LETTER IOTA WITH TONOS
- 0x03b1: 0x0098, # GREEK SMALL LETTER ALPHA
- 0x03b2: 0x0099, # GREEK SMALL LETTER BETA
- 0x03b3: 0x009a, # GREEK SMALL LETTER GAMMA
- 0x03b4: 0x009b, # GREEK SMALL LETTER DELTA
- 0x03b5: 0x009c, # GREEK SMALL LETTER EPSILON
- 0x03b6: 0x009d, # GREEK SMALL LETTER ZETA
- 0x03b7: 0x009e, # GREEK SMALL LETTER ETA
- 0x03b8: 0x009f, # GREEK SMALL LETTER THETA
- 0x03b9: 0x00a0, # GREEK SMALL LETTER IOTA
- 0x03ba: 0x00a1, # GREEK SMALL LETTER KAPPA
- 0x03bb: 0x00a2, # GREEK SMALL LETTER LAMDA
- 0x03bc: 0x00a3, # GREEK SMALL LETTER MU
- 0x03bd: 0x00a4, # GREEK SMALL LETTER NU
- 0x03be: 0x00a5, # GREEK SMALL LETTER XI
- 0x03bf: 0x00a6, # GREEK SMALL LETTER OMICRON
- 0x03c0: 0x00a7, # GREEK SMALL LETTER PI
- 0x03c1: 0x00a8, # GREEK SMALL LETTER RHO
- 0x03c2: 0x00aa, # GREEK SMALL LETTER FINAL SIGMA
- 0x03c3: 0x00a9, # GREEK SMALL LETTER SIGMA
- 0x03c4: 0x00ab, # GREEK SMALL LETTER TAU
- 0x03c5: 0x00ac, # GREEK SMALL LETTER UPSILON
- 0x03c6: 0x00ad, # GREEK SMALL LETTER PHI
- 0x03c7: 0x00ae, # GREEK SMALL LETTER CHI
- 0x03c8: 0x00af, # GREEK SMALL LETTER PSI
- 0x03c9: 0x00e0, # GREEK SMALL LETTER OMEGA
- 0x03ca: 0x00e4, # GREEK SMALL LETTER IOTA WITH DIALYTIKA
- 0x03cb: 0x00e8, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
- 0x03cc: 0x00e6, # GREEK SMALL LETTER OMICRON WITH TONOS
- 0x03cd: 0x00e7, # GREEK SMALL LETTER UPSILON WITH TONOS
- 0x03ce: 0x00e9, # GREEK SMALL LETTER OMEGA WITH TONOS
- 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x2219: 0x00f9, # BULLET OPERATOR
- 0x221a: 0x00fb, # SQUARE ROOT
- 0x2248: 0x00f7, # ALMOST EQUAL TO
- 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
- 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x258c: 0x00dd, # LEFT HALF BLOCK
- 0x2590: 0x00de, # RIGHT HALF BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp775.py b/EasyTrans/Lib/encodings/cp775.py
deleted file mode 100644
index fe06e7bc..00000000
--- a/EasyTrans/Lib/encodings/cp775.py
+++ /dev/null
@@ -1,697 +0,0 @@
-""" Python Character Mapping Codec cp775 generated from 'VENDORS/MICSFT/PC/CP775.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp775',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x0106, # LATIN CAPITAL LETTER C WITH ACUTE
- 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
- 0x0083: 0x0101, # LATIN SMALL LETTER A WITH MACRON
- 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x0085: 0x0123, # LATIN SMALL LETTER G WITH CEDILLA
- 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x0087: 0x0107, # LATIN SMALL LETTER C WITH ACUTE
- 0x0088: 0x0142, # LATIN SMALL LETTER L WITH STROKE
- 0x0089: 0x0113, # LATIN SMALL LETTER E WITH MACRON
- 0x008a: 0x0156, # LATIN CAPITAL LETTER R WITH CEDILLA
- 0x008b: 0x0157, # LATIN SMALL LETTER R WITH CEDILLA
- 0x008c: 0x012b, # LATIN SMALL LETTER I WITH MACRON
- 0x008d: 0x0179, # LATIN CAPITAL LETTER Z WITH ACUTE
- 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
- 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
- 0x0093: 0x014d, # LATIN SMALL LETTER O WITH MACRON
- 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x0095: 0x0122, # LATIN CAPITAL LETTER G WITH CEDILLA
- 0x0096: 0x00a2, # CENT SIGN
- 0x0097: 0x015a, # LATIN CAPITAL LETTER S WITH ACUTE
- 0x0098: 0x015b, # LATIN SMALL LETTER S WITH ACUTE
- 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
- 0x009c: 0x00a3, # POUND SIGN
- 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
- 0x009e: 0x00d7, # MULTIPLICATION SIGN
- 0x009f: 0x00a4, # CURRENCY SIGN
- 0x00a0: 0x0100, # LATIN CAPITAL LETTER A WITH MACRON
- 0x00a1: 0x012a, # LATIN CAPITAL LETTER I WITH MACRON
- 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
- 0x00a3: 0x017b, # LATIN CAPITAL LETTER Z WITH DOT ABOVE
- 0x00a4: 0x017c, # LATIN SMALL LETTER Z WITH DOT ABOVE
- 0x00a5: 0x017a, # LATIN SMALL LETTER Z WITH ACUTE
- 0x00a6: 0x201d, # RIGHT DOUBLE QUOTATION MARK
- 0x00a7: 0x00a6, # BROKEN BAR
- 0x00a8: 0x00a9, # COPYRIGHT SIGN
- 0x00a9: 0x00ae, # REGISTERED SIGN
- 0x00aa: 0x00ac, # NOT SIGN
- 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
- 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
- 0x00ad: 0x0141, # LATIN CAPITAL LETTER L WITH STROKE
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x0104, # LATIN CAPITAL LETTER A WITH OGONEK
- 0x00b6: 0x010c, # LATIN CAPITAL LETTER C WITH CARON
- 0x00b7: 0x0118, # LATIN CAPITAL LETTER E WITH OGONEK
- 0x00b8: 0x0116, # LATIN CAPITAL LETTER E WITH DOT ABOVE
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x012e, # LATIN CAPITAL LETTER I WITH OGONEK
- 0x00be: 0x0160, # LATIN CAPITAL LETTER S WITH CARON
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x0172, # LATIN CAPITAL LETTER U WITH OGONEK
- 0x00c7: 0x016a, # LATIN CAPITAL LETTER U WITH MACRON
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x017d, # LATIN CAPITAL LETTER Z WITH CARON
- 0x00d0: 0x0105, # LATIN SMALL LETTER A WITH OGONEK
- 0x00d1: 0x010d, # LATIN SMALL LETTER C WITH CARON
- 0x00d2: 0x0119, # LATIN SMALL LETTER E WITH OGONEK
- 0x00d3: 0x0117, # LATIN SMALL LETTER E WITH DOT ABOVE
- 0x00d4: 0x012f, # LATIN SMALL LETTER I WITH OGONEK
- 0x00d5: 0x0161, # LATIN SMALL LETTER S WITH CARON
- 0x00d6: 0x0173, # LATIN SMALL LETTER U WITH OGONEK
- 0x00d7: 0x016b, # LATIN SMALL LETTER U WITH MACRON
- 0x00d8: 0x017e, # LATIN SMALL LETTER Z WITH CARON
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x258c, # LEFT HALF BLOCK
- 0x00de: 0x2590, # RIGHT HALF BLOCK
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S (GERMAN)
- 0x00e2: 0x014c, # LATIN CAPITAL LETTER O WITH MACRON
- 0x00e3: 0x0143, # LATIN CAPITAL LETTER N WITH ACUTE
- 0x00e4: 0x00f5, # LATIN SMALL LETTER O WITH TILDE
- 0x00e5: 0x00d5, # LATIN CAPITAL LETTER O WITH TILDE
- 0x00e6: 0x00b5, # MICRO SIGN
- 0x00e7: 0x0144, # LATIN SMALL LETTER N WITH ACUTE
- 0x00e8: 0x0136, # LATIN CAPITAL LETTER K WITH CEDILLA
- 0x00e9: 0x0137, # LATIN SMALL LETTER K WITH CEDILLA
- 0x00ea: 0x013b, # LATIN CAPITAL LETTER L WITH CEDILLA
- 0x00eb: 0x013c, # LATIN SMALL LETTER L WITH CEDILLA
- 0x00ec: 0x0146, # LATIN SMALL LETTER N WITH CEDILLA
- 0x00ed: 0x0112, # LATIN CAPITAL LETTER E WITH MACRON
- 0x00ee: 0x0145, # LATIN CAPITAL LETTER N WITH CEDILLA
- 0x00ef: 0x2019, # RIGHT SINGLE QUOTATION MARK
- 0x00f0: 0x00ad, # SOFT HYPHEN
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: 0x201c, # LEFT DOUBLE QUOTATION MARK
- 0x00f3: 0x00be, # VULGAR FRACTION THREE QUARTERS
- 0x00f4: 0x00b6, # PILCROW SIGN
- 0x00f5: 0x00a7, # SECTION SIGN
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x201e, # DOUBLE LOW-9 QUOTATION MARK
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x2219, # BULLET OPERATOR
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x00b9, # SUPERSCRIPT ONE
- 0x00fc: 0x00b3, # SUPERSCRIPT THREE
- 0x00fd: 0x00b2, # SUPERSCRIPT TWO
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\u0106' # 0x0080 -> LATIN CAPITAL LETTER C WITH ACUTE
- '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
- '\u0101' # 0x0083 -> LATIN SMALL LETTER A WITH MACRON
- '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\u0123' # 0x0085 -> LATIN SMALL LETTER G WITH CEDILLA
- '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\u0107' # 0x0087 -> LATIN SMALL LETTER C WITH ACUTE
- '\u0142' # 0x0088 -> LATIN SMALL LETTER L WITH STROKE
- '\u0113' # 0x0089 -> LATIN SMALL LETTER E WITH MACRON
- '\u0156' # 0x008a -> LATIN CAPITAL LETTER R WITH CEDILLA
- '\u0157' # 0x008b -> LATIN SMALL LETTER R WITH CEDILLA
- '\u012b' # 0x008c -> LATIN SMALL LETTER I WITH MACRON
- '\u0179' # 0x008d -> LATIN CAPITAL LETTER Z WITH ACUTE
- '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
- '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
- '\u014d' # 0x0093 -> LATIN SMALL LETTER O WITH MACRON
- '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\u0122' # 0x0095 -> LATIN CAPITAL LETTER G WITH CEDILLA
- '\xa2' # 0x0096 -> CENT SIGN
- '\u015a' # 0x0097 -> LATIN CAPITAL LETTER S WITH ACUTE
- '\u015b' # 0x0098 -> LATIN SMALL LETTER S WITH ACUTE
- '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
- '\xa3' # 0x009c -> POUND SIGN
- '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
- '\xd7' # 0x009e -> MULTIPLICATION SIGN
- '\xa4' # 0x009f -> CURRENCY SIGN
- '\u0100' # 0x00a0 -> LATIN CAPITAL LETTER A WITH MACRON
- '\u012a' # 0x00a1 -> LATIN CAPITAL LETTER I WITH MACRON
- '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
- '\u017b' # 0x00a3 -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
- '\u017c' # 0x00a4 -> LATIN SMALL LETTER Z WITH DOT ABOVE
- '\u017a' # 0x00a5 -> LATIN SMALL LETTER Z WITH ACUTE
- '\u201d' # 0x00a6 -> RIGHT DOUBLE QUOTATION MARK
- '\xa6' # 0x00a7 -> BROKEN BAR
- '\xa9' # 0x00a8 -> COPYRIGHT SIGN
- '\xae' # 0x00a9 -> REGISTERED SIGN
- '\xac' # 0x00aa -> NOT SIGN
- '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
- '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
- '\u0141' # 0x00ad -> LATIN CAPITAL LETTER L WITH STROKE
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u0104' # 0x00b5 -> LATIN CAPITAL LETTER A WITH OGONEK
- '\u010c' # 0x00b6 -> LATIN CAPITAL LETTER C WITH CARON
- '\u0118' # 0x00b7 -> LATIN CAPITAL LETTER E WITH OGONEK
- '\u0116' # 0x00b8 -> LATIN CAPITAL LETTER E WITH DOT ABOVE
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u012e' # 0x00bd -> LATIN CAPITAL LETTER I WITH OGONEK
- '\u0160' # 0x00be -> LATIN CAPITAL LETTER S WITH CARON
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u0172' # 0x00c6 -> LATIN CAPITAL LETTER U WITH OGONEK
- '\u016a' # 0x00c7 -> LATIN CAPITAL LETTER U WITH MACRON
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u017d' # 0x00cf -> LATIN CAPITAL LETTER Z WITH CARON
- '\u0105' # 0x00d0 -> LATIN SMALL LETTER A WITH OGONEK
- '\u010d' # 0x00d1 -> LATIN SMALL LETTER C WITH CARON
- '\u0119' # 0x00d2 -> LATIN SMALL LETTER E WITH OGONEK
- '\u0117' # 0x00d3 -> LATIN SMALL LETTER E WITH DOT ABOVE
- '\u012f' # 0x00d4 -> LATIN SMALL LETTER I WITH OGONEK
- '\u0161' # 0x00d5 -> LATIN SMALL LETTER S WITH CARON
- '\u0173' # 0x00d6 -> LATIN SMALL LETTER U WITH OGONEK
- '\u016b' # 0x00d7 -> LATIN SMALL LETTER U WITH MACRON
- '\u017e' # 0x00d8 -> LATIN SMALL LETTER Z WITH CARON
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u258c' # 0x00dd -> LEFT HALF BLOCK
- '\u2590' # 0x00de -> RIGHT HALF BLOCK
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\xd3' # 0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S (GERMAN)
- '\u014c' # 0x00e2 -> LATIN CAPITAL LETTER O WITH MACRON
- '\u0143' # 0x00e3 -> LATIN CAPITAL LETTER N WITH ACUTE
- '\xf5' # 0x00e4 -> LATIN SMALL LETTER O WITH TILDE
- '\xd5' # 0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
- '\xb5' # 0x00e6 -> MICRO SIGN
- '\u0144' # 0x00e7 -> LATIN SMALL LETTER N WITH ACUTE
- '\u0136' # 0x00e8 -> LATIN CAPITAL LETTER K WITH CEDILLA
- '\u0137' # 0x00e9 -> LATIN SMALL LETTER K WITH CEDILLA
- '\u013b' # 0x00ea -> LATIN CAPITAL LETTER L WITH CEDILLA
- '\u013c' # 0x00eb -> LATIN SMALL LETTER L WITH CEDILLA
- '\u0146' # 0x00ec -> LATIN SMALL LETTER N WITH CEDILLA
- '\u0112' # 0x00ed -> LATIN CAPITAL LETTER E WITH MACRON
- '\u0145' # 0x00ee -> LATIN CAPITAL LETTER N WITH CEDILLA
- '\u2019' # 0x00ef -> RIGHT SINGLE QUOTATION MARK
- '\xad' # 0x00f0 -> SOFT HYPHEN
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\u201c' # 0x00f2 -> LEFT DOUBLE QUOTATION MARK
- '\xbe' # 0x00f3 -> VULGAR FRACTION THREE QUARTERS
- '\xb6' # 0x00f4 -> PILCROW SIGN
- '\xa7' # 0x00f5 -> SECTION SIGN
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\u201e' # 0x00f7 -> DOUBLE LOW-9 QUOTATION MARK
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\u2219' # 0x00f9 -> BULLET OPERATOR
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\xb9' # 0x00fb -> SUPERSCRIPT ONE
- '\xb3' # 0x00fc -> SUPERSCRIPT THREE
- '\xb2' # 0x00fd -> SUPERSCRIPT TWO
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a2: 0x0096, # CENT SIGN
- 0x00a3: 0x009c, # POUND SIGN
- 0x00a4: 0x009f, # CURRENCY SIGN
- 0x00a6: 0x00a7, # BROKEN BAR
- 0x00a7: 0x00f5, # SECTION SIGN
- 0x00a9: 0x00a8, # COPYRIGHT SIGN
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x00aa, # NOT SIGN
- 0x00ad: 0x00f0, # SOFT HYPHEN
- 0x00ae: 0x00a9, # REGISTERED SIGN
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x00fd, # SUPERSCRIPT TWO
- 0x00b3: 0x00fc, # SUPERSCRIPT THREE
- 0x00b5: 0x00e6, # MICRO SIGN
- 0x00b6: 0x00f4, # PILCROW SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x00b9: 0x00fb, # SUPERSCRIPT ONE
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
- 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
- 0x00be: 0x00f3, # VULGAR FRACTION THREE QUARTERS
- 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
- 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x00d3: 0x00e0, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00d5: 0x00e5, # LATIN CAPITAL LETTER O WITH TILDE
- 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x00d7: 0x009e, # MULTIPLICATION SIGN
- 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
- 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S (GERMAN)
- 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
- 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
- 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
- 0x00f5: 0x00e4, # LATIN SMALL LETTER O WITH TILDE
- 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
- 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0100: 0x00a0, # LATIN CAPITAL LETTER A WITH MACRON
- 0x0101: 0x0083, # LATIN SMALL LETTER A WITH MACRON
- 0x0104: 0x00b5, # LATIN CAPITAL LETTER A WITH OGONEK
- 0x0105: 0x00d0, # LATIN SMALL LETTER A WITH OGONEK
- 0x0106: 0x0080, # LATIN CAPITAL LETTER C WITH ACUTE
- 0x0107: 0x0087, # LATIN SMALL LETTER C WITH ACUTE
- 0x010c: 0x00b6, # LATIN CAPITAL LETTER C WITH CARON
- 0x010d: 0x00d1, # LATIN SMALL LETTER C WITH CARON
- 0x0112: 0x00ed, # LATIN CAPITAL LETTER E WITH MACRON
- 0x0113: 0x0089, # LATIN SMALL LETTER E WITH MACRON
- 0x0116: 0x00b8, # LATIN CAPITAL LETTER E WITH DOT ABOVE
- 0x0117: 0x00d3, # LATIN SMALL LETTER E WITH DOT ABOVE
- 0x0118: 0x00b7, # LATIN CAPITAL LETTER E WITH OGONEK
- 0x0119: 0x00d2, # LATIN SMALL LETTER E WITH OGONEK
- 0x0122: 0x0095, # LATIN CAPITAL LETTER G WITH CEDILLA
- 0x0123: 0x0085, # LATIN SMALL LETTER G WITH CEDILLA
- 0x012a: 0x00a1, # LATIN CAPITAL LETTER I WITH MACRON
- 0x012b: 0x008c, # LATIN SMALL LETTER I WITH MACRON
- 0x012e: 0x00bd, # LATIN CAPITAL LETTER I WITH OGONEK
- 0x012f: 0x00d4, # LATIN SMALL LETTER I WITH OGONEK
- 0x0136: 0x00e8, # LATIN CAPITAL LETTER K WITH CEDILLA
- 0x0137: 0x00e9, # LATIN SMALL LETTER K WITH CEDILLA
- 0x013b: 0x00ea, # LATIN CAPITAL LETTER L WITH CEDILLA
- 0x013c: 0x00eb, # LATIN SMALL LETTER L WITH CEDILLA
- 0x0141: 0x00ad, # LATIN CAPITAL LETTER L WITH STROKE
- 0x0142: 0x0088, # LATIN SMALL LETTER L WITH STROKE
- 0x0143: 0x00e3, # LATIN CAPITAL LETTER N WITH ACUTE
- 0x0144: 0x00e7, # LATIN SMALL LETTER N WITH ACUTE
- 0x0145: 0x00ee, # LATIN CAPITAL LETTER N WITH CEDILLA
- 0x0146: 0x00ec, # LATIN SMALL LETTER N WITH CEDILLA
- 0x014c: 0x00e2, # LATIN CAPITAL LETTER O WITH MACRON
- 0x014d: 0x0093, # LATIN SMALL LETTER O WITH MACRON
- 0x0156: 0x008a, # LATIN CAPITAL LETTER R WITH CEDILLA
- 0x0157: 0x008b, # LATIN SMALL LETTER R WITH CEDILLA
- 0x015a: 0x0097, # LATIN CAPITAL LETTER S WITH ACUTE
- 0x015b: 0x0098, # LATIN SMALL LETTER S WITH ACUTE
- 0x0160: 0x00be, # LATIN CAPITAL LETTER S WITH CARON
- 0x0161: 0x00d5, # LATIN SMALL LETTER S WITH CARON
- 0x016a: 0x00c7, # LATIN CAPITAL LETTER U WITH MACRON
- 0x016b: 0x00d7, # LATIN SMALL LETTER U WITH MACRON
- 0x0172: 0x00c6, # LATIN CAPITAL LETTER U WITH OGONEK
- 0x0173: 0x00d6, # LATIN SMALL LETTER U WITH OGONEK
- 0x0179: 0x008d, # LATIN CAPITAL LETTER Z WITH ACUTE
- 0x017a: 0x00a5, # LATIN SMALL LETTER Z WITH ACUTE
- 0x017b: 0x00a3, # LATIN CAPITAL LETTER Z WITH DOT ABOVE
- 0x017c: 0x00a4, # LATIN SMALL LETTER Z WITH DOT ABOVE
- 0x017d: 0x00cf, # LATIN CAPITAL LETTER Z WITH CARON
- 0x017e: 0x00d8, # LATIN SMALL LETTER Z WITH CARON
- 0x2019: 0x00ef, # RIGHT SINGLE QUOTATION MARK
- 0x201c: 0x00f2, # LEFT DOUBLE QUOTATION MARK
- 0x201d: 0x00a6, # RIGHT DOUBLE QUOTATION MARK
- 0x201e: 0x00f7, # DOUBLE LOW-9 QUOTATION MARK
- 0x2219: 0x00f9, # BULLET OPERATOR
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x258c: 0x00dd, # LEFT HALF BLOCK
- 0x2590: 0x00de, # RIGHT HALF BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp850.py b/EasyTrans/Lib/encodings/cp850.py
deleted file mode 100644
index f98aef99..00000000
--- a/EasyTrans/Lib/encodings/cp850.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP850.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp850',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
- 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
- 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
- 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
- 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x008d: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
- 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
- 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
- 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
- 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
- 0x0098: 0x00ff, # LATIN SMALL LETTER Y WITH DIAERESIS
- 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
- 0x009c: 0x00a3, # POUND SIGN
- 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
- 0x009e: 0x00d7, # MULTIPLICATION SIGN
- 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
- 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
- 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
- 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
- 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
- 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
- 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
- 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
- 0x00a8: 0x00bf, # INVERTED QUESTION MARK
- 0x00a9: 0x00ae, # REGISTERED SIGN
- 0x00aa: 0x00ac, # NOT SIGN
- 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
- 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
- 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x00b6: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x00b7: 0x00c0, # LATIN CAPITAL LETTER A WITH GRAVE
- 0x00b8: 0x00a9, # COPYRIGHT SIGN
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x00a2, # CENT SIGN
- 0x00be: 0x00a5, # YEN SIGN
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x00e3, # LATIN SMALL LETTER A WITH TILDE
- 0x00c7: 0x00c3, # LATIN CAPITAL LETTER A WITH TILDE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x00a4, # CURRENCY SIGN
- 0x00d0: 0x00f0, # LATIN SMALL LETTER ETH
- 0x00d1: 0x00d0, # LATIN CAPITAL LETTER ETH
- 0x00d2: 0x00ca, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- 0x00d3: 0x00cb, # LATIN CAPITAL LETTER E WITH DIAERESIS
- 0x00d4: 0x00c8, # LATIN CAPITAL LETTER E WITH GRAVE
- 0x00d5: 0x0131, # LATIN SMALL LETTER DOTLESS I
- 0x00d6: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x00d7: 0x00ce, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- 0x00d8: 0x00cf, # LATIN CAPITAL LETTER I WITH DIAERESIS
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x00a6, # BROKEN BAR
- 0x00de: 0x00cc, # LATIN CAPITAL LETTER I WITH GRAVE
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
- 0x00e2: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x00e3: 0x00d2, # LATIN CAPITAL LETTER O WITH GRAVE
- 0x00e4: 0x00f5, # LATIN SMALL LETTER O WITH TILDE
- 0x00e5: 0x00d5, # LATIN CAPITAL LETTER O WITH TILDE
- 0x00e6: 0x00b5, # MICRO SIGN
- 0x00e7: 0x00fe, # LATIN SMALL LETTER THORN
- 0x00e8: 0x00de, # LATIN CAPITAL LETTER THORN
- 0x00e9: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x00ea: 0x00db, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- 0x00eb: 0x00d9, # LATIN CAPITAL LETTER U WITH GRAVE
- 0x00ec: 0x00fd, # LATIN SMALL LETTER Y WITH ACUTE
- 0x00ed: 0x00dd, # LATIN CAPITAL LETTER Y WITH ACUTE
- 0x00ee: 0x00af, # MACRON
- 0x00ef: 0x00b4, # ACUTE ACCENT
- 0x00f0: 0x00ad, # SOFT HYPHEN
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: 0x2017, # DOUBLE LOW LINE
- 0x00f3: 0x00be, # VULGAR FRACTION THREE QUARTERS
- 0x00f4: 0x00b6, # PILCROW SIGN
- 0x00f5: 0x00a7, # SECTION SIGN
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x00b8, # CEDILLA
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x00a8, # DIAERESIS
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x00b9, # SUPERSCRIPT ONE
- 0x00fc: 0x00b3, # SUPERSCRIPT THREE
- 0x00fd: 0x00b2, # SUPERSCRIPT TWO
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
- '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
- '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xec' # 0x008d -> LATIN SMALL LETTER I WITH GRAVE
- '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
- '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
- '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
- '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
- '\xff' # 0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
- '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
- '\xa3' # 0x009c -> POUND SIGN
- '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
- '\xd7' # 0x009e -> MULTIPLICATION SIGN
- '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
- '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
- '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
- '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
- '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
- '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
- '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
- '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
- '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
- '\xae' # 0x00a9 -> REGISTERED SIGN
- '\xac' # 0x00aa -> NOT SIGN
- '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
- '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
- '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\xc1' # 0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc2' # 0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc0' # 0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xa9' # 0x00b8 -> COPYRIGHT SIGN
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\xa2' # 0x00bd -> CENT SIGN
- '\xa5' # 0x00be -> YEN SIGN
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\xe3' # 0x00c6 -> LATIN SMALL LETTER A WITH TILDE
- '\xc3' # 0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\xa4' # 0x00cf -> CURRENCY SIGN
- '\xf0' # 0x00d0 -> LATIN SMALL LETTER ETH
- '\xd0' # 0x00d1 -> LATIN CAPITAL LETTER ETH
- '\xca' # 0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xc8' # 0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\u0131' # 0x00d5 -> LATIN SMALL LETTER DOTLESS I
- '\xcd' # 0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\xa6' # 0x00dd -> BROKEN BAR
- '\xcc' # 0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\xd3' # 0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
- '\xd4' # 0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xd2' # 0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xf5' # 0x00e4 -> LATIN SMALL LETTER O WITH TILDE
- '\xd5' # 0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
- '\xb5' # 0x00e6 -> MICRO SIGN
- '\xfe' # 0x00e7 -> LATIN SMALL LETTER THORN
- '\xde' # 0x00e8 -> LATIN CAPITAL LETTER THORN
- '\xda' # 0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
- '\xdb' # 0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\xd9' # 0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xfd' # 0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
- '\xdd' # 0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\xaf' # 0x00ee -> MACRON
- '\xb4' # 0x00ef -> ACUTE ACCENT
- '\xad' # 0x00f0 -> SOFT HYPHEN
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\u2017' # 0x00f2 -> DOUBLE LOW LINE
- '\xbe' # 0x00f3 -> VULGAR FRACTION THREE QUARTERS
- '\xb6' # 0x00f4 -> PILCROW SIGN
- '\xa7' # 0x00f5 -> SECTION SIGN
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\xb8' # 0x00f7 -> CEDILLA
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\xa8' # 0x00f9 -> DIAERESIS
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\xb9' # 0x00fb -> SUPERSCRIPT ONE
- '\xb3' # 0x00fc -> SUPERSCRIPT THREE
- '\xb2' # 0x00fd -> SUPERSCRIPT TWO
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
- 0x00a2: 0x00bd, # CENT SIGN
- 0x00a3: 0x009c, # POUND SIGN
- 0x00a4: 0x00cf, # CURRENCY SIGN
- 0x00a5: 0x00be, # YEN SIGN
- 0x00a6: 0x00dd, # BROKEN BAR
- 0x00a7: 0x00f5, # SECTION SIGN
- 0x00a8: 0x00f9, # DIAERESIS
- 0x00a9: 0x00b8, # COPYRIGHT SIGN
- 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x00aa, # NOT SIGN
- 0x00ad: 0x00f0, # SOFT HYPHEN
- 0x00ae: 0x00a9, # REGISTERED SIGN
- 0x00af: 0x00ee, # MACRON
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x00fd, # SUPERSCRIPT TWO
- 0x00b3: 0x00fc, # SUPERSCRIPT THREE
- 0x00b4: 0x00ef, # ACUTE ACCENT
- 0x00b5: 0x00e6, # MICRO SIGN
- 0x00b6: 0x00f4, # PILCROW SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x00b8: 0x00f7, # CEDILLA
- 0x00b9: 0x00fb, # SUPERSCRIPT ONE
- 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
- 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
- 0x00be: 0x00f3, # VULGAR FRACTION THREE QUARTERS
- 0x00bf: 0x00a8, # INVERTED QUESTION MARK
- 0x00c0: 0x00b7, # LATIN CAPITAL LETTER A WITH GRAVE
- 0x00c1: 0x00b5, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x00c2: 0x00b6, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x00c3: 0x00c7, # LATIN CAPITAL LETTER A WITH TILDE
- 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
- 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x00c8: 0x00d4, # LATIN CAPITAL LETTER E WITH GRAVE
- 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x00ca: 0x00d2, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- 0x00cb: 0x00d3, # LATIN CAPITAL LETTER E WITH DIAERESIS
- 0x00cc: 0x00de, # LATIN CAPITAL LETTER I WITH GRAVE
- 0x00cd: 0x00d6, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x00ce: 0x00d7, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- 0x00cf: 0x00d8, # LATIN CAPITAL LETTER I WITH DIAERESIS
- 0x00d0: 0x00d1, # LATIN CAPITAL LETTER ETH
- 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00d2: 0x00e3, # LATIN CAPITAL LETTER O WITH GRAVE
- 0x00d3: 0x00e0, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00d4: 0x00e2, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x00d5: 0x00e5, # LATIN CAPITAL LETTER O WITH TILDE
- 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x00d7: 0x009e, # MULTIPLICATION SIGN
- 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
- 0x00d9: 0x00eb, # LATIN CAPITAL LETTER U WITH GRAVE
- 0x00da: 0x00e9, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x00db: 0x00ea, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x00dd: 0x00ed, # LATIN CAPITAL LETTER Y WITH ACUTE
- 0x00de: 0x00e8, # LATIN CAPITAL LETTER THORN
- 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
- 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
- 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
- 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x00e3: 0x00c6, # LATIN SMALL LETTER A WITH TILDE
- 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
- 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
- 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
- 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
- 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x00ec: 0x008d, # LATIN SMALL LETTER I WITH GRAVE
- 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
- 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x00f0: 0x00d0, # LATIN SMALL LETTER ETH
- 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
- 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
- 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
- 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x00f5: 0x00e4, # LATIN SMALL LETTER O WITH TILDE
- 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
- 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
- 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
- 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x00fd: 0x00ec, # LATIN SMALL LETTER Y WITH ACUTE
- 0x00fe: 0x00e7, # LATIN SMALL LETTER THORN
- 0x00ff: 0x0098, # LATIN SMALL LETTER Y WITH DIAERESIS
- 0x0131: 0x00d5, # LATIN SMALL LETTER DOTLESS I
- 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
- 0x2017: 0x00f2, # DOUBLE LOW LINE
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp852.py b/EasyTrans/Lib/encodings/cp852.py
deleted file mode 100644
index 34d8a0ea..00000000
--- a/EasyTrans/Lib/encodings/cp852.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP852.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp852',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
- 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x0085: 0x016f, # LATIN SMALL LETTER U WITH RING ABOVE
- 0x0086: 0x0107, # LATIN SMALL LETTER C WITH ACUTE
- 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
- 0x0088: 0x0142, # LATIN SMALL LETTER L WITH STROKE
- 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x008a: 0x0150, # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
- 0x008b: 0x0151, # LATIN SMALL LETTER O WITH DOUBLE ACUTE
- 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x008d: 0x0179, # LATIN CAPITAL LETTER Z WITH ACUTE
- 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x008f: 0x0106, # LATIN CAPITAL LETTER C WITH ACUTE
- 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x0091: 0x0139, # LATIN CAPITAL LETTER L WITH ACUTE
- 0x0092: 0x013a, # LATIN SMALL LETTER L WITH ACUTE
- 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x0095: 0x013d, # LATIN CAPITAL LETTER L WITH CARON
- 0x0096: 0x013e, # LATIN SMALL LETTER L WITH CARON
- 0x0097: 0x015a, # LATIN CAPITAL LETTER S WITH ACUTE
- 0x0098: 0x015b, # LATIN SMALL LETTER S WITH ACUTE
- 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x009b: 0x0164, # LATIN CAPITAL LETTER T WITH CARON
- 0x009c: 0x0165, # LATIN SMALL LETTER T WITH CARON
- 0x009d: 0x0141, # LATIN CAPITAL LETTER L WITH STROKE
- 0x009e: 0x00d7, # MULTIPLICATION SIGN
- 0x009f: 0x010d, # LATIN SMALL LETTER C WITH CARON
- 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
- 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
- 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
- 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
- 0x00a4: 0x0104, # LATIN CAPITAL LETTER A WITH OGONEK
- 0x00a5: 0x0105, # LATIN SMALL LETTER A WITH OGONEK
- 0x00a6: 0x017d, # LATIN CAPITAL LETTER Z WITH CARON
- 0x00a7: 0x017e, # LATIN SMALL LETTER Z WITH CARON
- 0x00a8: 0x0118, # LATIN CAPITAL LETTER E WITH OGONEK
- 0x00a9: 0x0119, # LATIN SMALL LETTER E WITH OGONEK
- 0x00aa: 0x00ac, # NOT SIGN
- 0x00ab: 0x017a, # LATIN SMALL LETTER Z WITH ACUTE
- 0x00ac: 0x010c, # LATIN CAPITAL LETTER C WITH CARON
- 0x00ad: 0x015f, # LATIN SMALL LETTER S WITH CEDILLA
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x00b6: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x00b7: 0x011a, # LATIN CAPITAL LETTER E WITH CARON
- 0x00b8: 0x015e, # LATIN CAPITAL LETTER S WITH CEDILLA
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x017b, # LATIN CAPITAL LETTER Z WITH DOT ABOVE
- 0x00be: 0x017c, # LATIN SMALL LETTER Z WITH DOT ABOVE
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x0102, # LATIN CAPITAL LETTER A WITH BREVE
- 0x00c7: 0x0103, # LATIN SMALL LETTER A WITH BREVE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x00a4, # CURRENCY SIGN
- 0x00d0: 0x0111, # LATIN SMALL LETTER D WITH STROKE
- 0x00d1: 0x0110, # LATIN CAPITAL LETTER D WITH STROKE
- 0x00d2: 0x010e, # LATIN CAPITAL LETTER D WITH CARON
- 0x00d3: 0x00cb, # LATIN CAPITAL LETTER E WITH DIAERESIS
- 0x00d4: 0x010f, # LATIN SMALL LETTER D WITH CARON
- 0x00d5: 0x0147, # LATIN CAPITAL LETTER N WITH CARON
- 0x00d6: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x00d7: 0x00ce, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- 0x00d8: 0x011b, # LATIN SMALL LETTER E WITH CARON
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x0162, # LATIN CAPITAL LETTER T WITH CEDILLA
- 0x00de: 0x016e, # LATIN CAPITAL LETTER U WITH RING ABOVE
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
- 0x00e2: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x00e3: 0x0143, # LATIN CAPITAL LETTER N WITH ACUTE
- 0x00e4: 0x0144, # LATIN SMALL LETTER N WITH ACUTE
- 0x00e5: 0x0148, # LATIN SMALL LETTER N WITH CARON
- 0x00e6: 0x0160, # LATIN CAPITAL LETTER S WITH CARON
- 0x00e7: 0x0161, # LATIN SMALL LETTER S WITH CARON
- 0x00e8: 0x0154, # LATIN CAPITAL LETTER R WITH ACUTE
- 0x00e9: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x00ea: 0x0155, # LATIN SMALL LETTER R WITH ACUTE
- 0x00eb: 0x0170, # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
- 0x00ec: 0x00fd, # LATIN SMALL LETTER Y WITH ACUTE
- 0x00ed: 0x00dd, # LATIN CAPITAL LETTER Y WITH ACUTE
- 0x00ee: 0x0163, # LATIN SMALL LETTER T WITH CEDILLA
- 0x00ef: 0x00b4, # ACUTE ACCENT
- 0x00f0: 0x00ad, # SOFT HYPHEN
- 0x00f1: 0x02dd, # DOUBLE ACUTE ACCENT
- 0x00f2: 0x02db, # OGONEK
- 0x00f3: 0x02c7, # CARON
- 0x00f4: 0x02d8, # BREVE
- 0x00f5: 0x00a7, # SECTION SIGN
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x00b8, # CEDILLA
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x00a8, # DIAERESIS
- 0x00fa: 0x02d9, # DOT ABOVE
- 0x00fb: 0x0171, # LATIN SMALL LETTER U WITH DOUBLE ACUTE
- 0x00fc: 0x0158, # LATIN CAPITAL LETTER R WITH CARON
- 0x00fd: 0x0159, # LATIN SMALL LETTER R WITH CARON
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
- '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\u016f' # 0x0085 -> LATIN SMALL LETTER U WITH RING ABOVE
- '\u0107' # 0x0086 -> LATIN SMALL LETTER C WITH ACUTE
- '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
- '\u0142' # 0x0088 -> LATIN SMALL LETTER L WITH STROKE
- '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\u0150' # 0x008a -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
- '\u0151' # 0x008b -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
- '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\u0179' # 0x008d -> LATIN CAPITAL LETTER Z WITH ACUTE
- '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\u0106' # 0x008f -> LATIN CAPITAL LETTER C WITH ACUTE
- '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\u0139' # 0x0091 -> LATIN CAPITAL LETTER L WITH ACUTE
- '\u013a' # 0x0092 -> LATIN SMALL LETTER L WITH ACUTE
- '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\u013d' # 0x0095 -> LATIN CAPITAL LETTER L WITH CARON
- '\u013e' # 0x0096 -> LATIN SMALL LETTER L WITH CARON
- '\u015a' # 0x0097 -> LATIN CAPITAL LETTER S WITH ACUTE
- '\u015b' # 0x0098 -> LATIN SMALL LETTER S WITH ACUTE
- '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\u0164' # 0x009b -> LATIN CAPITAL LETTER T WITH CARON
- '\u0165' # 0x009c -> LATIN SMALL LETTER T WITH CARON
- '\u0141' # 0x009d -> LATIN CAPITAL LETTER L WITH STROKE
- '\xd7' # 0x009e -> MULTIPLICATION SIGN
- '\u010d' # 0x009f -> LATIN SMALL LETTER C WITH CARON
- '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
- '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
- '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
- '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
- '\u0104' # 0x00a4 -> LATIN CAPITAL LETTER A WITH OGONEK
- '\u0105' # 0x00a5 -> LATIN SMALL LETTER A WITH OGONEK
- '\u017d' # 0x00a6 -> LATIN CAPITAL LETTER Z WITH CARON
- '\u017e' # 0x00a7 -> LATIN SMALL LETTER Z WITH CARON
- '\u0118' # 0x00a8 -> LATIN CAPITAL LETTER E WITH OGONEK
- '\u0119' # 0x00a9 -> LATIN SMALL LETTER E WITH OGONEK
- '\xac' # 0x00aa -> NOT SIGN
- '\u017a' # 0x00ab -> LATIN SMALL LETTER Z WITH ACUTE
- '\u010c' # 0x00ac -> LATIN CAPITAL LETTER C WITH CARON
- '\u015f' # 0x00ad -> LATIN SMALL LETTER S WITH CEDILLA
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\xc1' # 0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc2' # 0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\u011a' # 0x00b7 -> LATIN CAPITAL LETTER E WITH CARON
- '\u015e' # 0x00b8 -> LATIN CAPITAL LETTER S WITH CEDILLA
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u017b' # 0x00bd -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
- '\u017c' # 0x00be -> LATIN SMALL LETTER Z WITH DOT ABOVE
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u0102' # 0x00c6 -> LATIN CAPITAL LETTER A WITH BREVE
- '\u0103' # 0x00c7 -> LATIN SMALL LETTER A WITH BREVE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\xa4' # 0x00cf -> CURRENCY SIGN
- '\u0111' # 0x00d0 -> LATIN SMALL LETTER D WITH STROKE
- '\u0110' # 0x00d1 -> LATIN CAPITAL LETTER D WITH STROKE
- '\u010e' # 0x00d2 -> LATIN CAPITAL LETTER D WITH CARON
- '\xcb' # 0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\u010f' # 0x00d4 -> LATIN SMALL LETTER D WITH CARON
- '\u0147' # 0x00d5 -> LATIN CAPITAL LETTER N WITH CARON
- '\xcd' # 0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\u011b' # 0x00d8 -> LATIN SMALL LETTER E WITH CARON
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u0162' # 0x00dd -> LATIN CAPITAL LETTER T WITH CEDILLA
- '\u016e' # 0x00de -> LATIN CAPITAL LETTER U WITH RING ABOVE
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\xd3' # 0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
- '\xd4' # 0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\u0143' # 0x00e3 -> LATIN CAPITAL LETTER N WITH ACUTE
- '\u0144' # 0x00e4 -> LATIN SMALL LETTER N WITH ACUTE
- '\u0148' # 0x00e5 -> LATIN SMALL LETTER N WITH CARON
- '\u0160' # 0x00e6 -> LATIN CAPITAL LETTER S WITH CARON
- '\u0161' # 0x00e7 -> LATIN SMALL LETTER S WITH CARON
- '\u0154' # 0x00e8 -> LATIN CAPITAL LETTER R WITH ACUTE
- '\xda' # 0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
- '\u0155' # 0x00ea -> LATIN SMALL LETTER R WITH ACUTE
- '\u0170' # 0x00eb -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
- '\xfd' # 0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
- '\xdd' # 0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\u0163' # 0x00ee -> LATIN SMALL LETTER T WITH CEDILLA
- '\xb4' # 0x00ef -> ACUTE ACCENT
- '\xad' # 0x00f0 -> SOFT HYPHEN
- '\u02dd' # 0x00f1 -> DOUBLE ACUTE ACCENT
- '\u02db' # 0x00f2 -> OGONEK
- '\u02c7' # 0x00f3 -> CARON
- '\u02d8' # 0x00f4 -> BREVE
- '\xa7' # 0x00f5 -> SECTION SIGN
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\xb8' # 0x00f7 -> CEDILLA
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\xa8' # 0x00f9 -> DIAERESIS
- '\u02d9' # 0x00fa -> DOT ABOVE
- '\u0171' # 0x00fb -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
- '\u0158' # 0x00fc -> LATIN CAPITAL LETTER R WITH CARON
- '\u0159' # 0x00fd -> LATIN SMALL LETTER R WITH CARON
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a4: 0x00cf, # CURRENCY SIGN
- 0x00a7: 0x00f5, # SECTION SIGN
- 0x00a8: 0x00f9, # DIAERESIS
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x00aa, # NOT SIGN
- 0x00ad: 0x00f0, # SOFT HYPHEN
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b4: 0x00ef, # ACUTE ACCENT
- 0x00b8: 0x00f7, # CEDILLA
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00c1: 0x00b5, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x00c2: 0x00b6, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x00cb: 0x00d3, # LATIN CAPITAL LETTER E WITH DIAERESIS
- 0x00cd: 0x00d6, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x00ce: 0x00d7, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- 0x00d3: 0x00e0, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00d4: 0x00e2, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x00d7: 0x009e, # MULTIPLICATION SIGN
- 0x00da: 0x00e9, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x00dd: 0x00ed, # LATIN CAPITAL LETTER Y WITH ACUTE
- 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
- 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
- 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
- 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
- 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
- 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
- 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
- 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x00fd: 0x00ec, # LATIN SMALL LETTER Y WITH ACUTE
- 0x0102: 0x00c6, # LATIN CAPITAL LETTER A WITH BREVE
- 0x0103: 0x00c7, # LATIN SMALL LETTER A WITH BREVE
- 0x0104: 0x00a4, # LATIN CAPITAL LETTER A WITH OGONEK
- 0x0105: 0x00a5, # LATIN SMALL LETTER A WITH OGONEK
- 0x0106: 0x008f, # LATIN CAPITAL LETTER C WITH ACUTE
- 0x0107: 0x0086, # LATIN SMALL LETTER C WITH ACUTE
- 0x010c: 0x00ac, # LATIN CAPITAL LETTER C WITH CARON
- 0x010d: 0x009f, # LATIN SMALL LETTER C WITH CARON
- 0x010e: 0x00d2, # LATIN CAPITAL LETTER D WITH CARON
- 0x010f: 0x00d4, # LATIN SMALL LETTER D WITH CARON
- 0x0110: 0x00d1, # LATIN CAPITAL LETTER D WITH STROKE
- 0x0111: 0x00d0, # LATIN SMALL LETTER D WITH STROKE
- 0x0118: 0x00a8, # LATIN CAPITAL LETTER E WITH OGONEK
- 0x0119: 0x00a9, # LATIN SMALL LETTER E WITH OGONEK
- 0x011a: 0x00b7, # LATIN CAPITAL LETTER E WITH CARON
- 0x011b: 0x00d8, # LATIN SMALL LETTER E WITH CARON
- 0x0139: 0x0091, # LATIN CAPITAL LETTER L WITH ACUTE
- 0x013a: 0x0092, # LATIN SMALL LETTER L WITH ACUTE
- 0x013d: 0x0095, # LATIN CAPITAL LETTER L WITH CARON
- 0x013e: 0x0096, # LATIN SMALL LETTER L WITH CARON
- 0x0141: 0x009d, # LATIN CAPITAL LETTER L WITH STROKE
- 0x0142: 0x0088, # LATIN SMALL LETTER L WITH STROKE
- 0x0143: 0x00e3, # LATIN CAPITAL LETTER N WITH ACUTE
- 0x0144: 0x00e4, # LATIN SMALL LETTER N WITH ACUTE
- 0x0147: 0x00d5, # LATIN CAPITAL LETTER N WITH CARON
- 0x0148: 0x00e5, # LATIN SMALL LETTER N WITH CARON
- 0x0150: 0x008a, # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
- 0x0151: 0x008b, # LATIN SMALL LETTER O WITH DOUBLE ACUTE
- 0x0154: 0x00e8, # LATIN CAPITAL LETTER R WITH ACUTE
- 0x0155: 0x00ea, # LATIN SMALL LETTER R WITH ACUTE
- 0x0158: 0x00fc, # LATIN CAPITAL LETTER R WITH CARON
- 0x0159: 0x00fd, # LATIN SMALL LETTER R WITH CARON
- 0x015a: 0x0097, # LATIN CAPITAL LETTER S WITH ACUTE
- 0x015b: 0x0098, # LATIN SMALL LETTER S WITH ACUTE
- 0x015e: 0x00b8, # LATIN CAPITAL LETTER S WITH CEDILLA
- 0x015f: 0x00ad, # LATIN SMALL LETTER S WITH CEDILLA
- 0x0160: 0x00e6, # LATIN CAPITAL LETTER S WITH CARON
- 0x0161: 0x00e7, # LATIN SMALL LETTER S WITH CARON
- 0x0162: 0x00dd, # LATIN CAPITAL LETTER T WITH CEDILLA
- 0x0163: 0x00ee, # LATIN SMALL LETTER T WITH CEDILLA
- 0x0164: 0x009b, # LATIN CAPITAL LETTER T WITH CARON
- 0x0165: 0x009c, # LATIN SMALL LETTER T WITH CARON
- 0x016e: 0x00de, # LATIN CAPITAL LETTER U WITH RING ABOVE
- 0x016f: 0x0085, # LATIN SMALL LETTER U WITH RING ABOVE
- 0x0170: 0x00eb, # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
- 0x0171: 0x00fb, # LATIN SMALL LETTER U WITH DOUBLE ACUTE
- 0x0179: 0x008d, # LATIN CAPITAL LETTER Z WITH ACUTE
- 0x017a: 0x00ab, # LATIN SMALL LETTER Z WITH ACUTE
- 0x017b: 0x00bd, # LATIN CAPITAL LETTER Z WITH DOT ABOVE
- 0x017c: 0x00be, # LATIN SMALL LETTER Z WITH DOT ABOVE
- 0x017d: 0x00a6, # LATIN CAPITAL LETTER Z WITH CARON
- 0x017e: 0x00a7, # LATIN SMALL LETTER Z WITH CARON
- 0x02c7: 0x00f3, # CARON
- 0x02d8: 0x00f4, # BREVE
- 0x02d9: 0x00fa, # DOT ABOVE
- 0x02db: 0x00f2, # OGONEK
- 0x02dd: 0x00f1, # DOUBLE ACUTE ACCENT
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp855.py b/EasyTrans/Lib/encodings/cp855.py
deleted file mode 100644
index 4fe92106..00000000
--- a/EasyTrans/Lib/encodings/cp855.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP855.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp855',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x0452, # CYRILLIC SMALL LETTER DJE
- 0x0081: 0x0402, # CYRILLIC CAPITAL LETTER DJE
- 0x0082: 0x0453, # CYRILLIC SMALL LETTER GJE
- 0x0083: 0x0403, # CYRILLIC CAPITAL LETTER GJE
- 0x0084: 0x0451, # CYRILLIC SMALL LETTER IO
- 0x0085: 0x0401, # CYRILLIC CAPITAL LETTER IO
- 0x0086: 0x0454, # CYRILLIC SMALL LETTER UKRAINIAN IE
- 0x0087: 0x0404, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
- 0x0088: 0x0455, # CYRILLIC SMALL LETTER DZE
- 0x0089: 0x0405, # CYRILLIC CAPITAL LETTER DZE
- 0x008a: 0x0456, # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
- 0x008b: 0x0406, # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
- 0x008c: 0x0457, # CYRILLIC SMALL LETTER YI
- 0x008d: 0x0407, # CYRILLIC CAPITAL LETTER YI
- 0x008e: 0x0458, # CYRILLIC SMALL LETTER JE
- 0x008f: 0x0408, # CYRILLIC CAPITAL LETTER JE
- 0x0090: 0x0459, # CYRILLIC SMALL LETTER LJE
- 0x0091: 0x0409, # CYRILLIC CAPITAL LETTER LJE
- 0x0092: 0x045a, # CYRILLIC SMALL LETTER NJE
- 0x0093: 0x040a, # CYRILLIC CAPITAL LETTER NJE
- 0x0094: 0x045b, # CYRILLIC SMALL LETTER TSHE
- 0x0095: 0x040b, # CYRILLIC CAPITAL LETTER TSHE
- 0x0096: 0x045c, # CYRILLIC SMALL LETTER KJE
- 0x0097: 0x040c, # CYRILLIC CAPITAL LETTER KJE
- 0x0098: 0x045e, # CYRILLIC SMALL LETTER SHORT U
- 0x0099: 0x040e, # CYRILLIC CAPITAL LETTER SHORT U
- 0x009a: 0x045f, # CYRILLIC SMALL LETTER DZHE
- 0x009b: 0x040f, # CYRILLIC CAPITAL LETTER DZHE
- 0x009c: 0x044e, # CYRILLIC SMALL LETTER YU
- 0x009d: 0x042e, # CYRILLIC CAPITAL LETTER YU
- 0x009e: 0x044a, # CYRILLIC SMALL LETTER HARD SIGN
- 0x009f: 0x042a, # CYRILLIC CAPITAL LETTER HARD SIGN
- 0x00a0: 0x0430, # CYRILLIC SMALL LETTER A
- 0x00a1: 0x0410, # CYRILLIC CAPITAL LETTER A
- 0x00a2: 0x0431, # CYRILLIC SMALL LETTER BE
- 0x00a3: 0x0411, # CYRILLIC CAPITAL LETTER BE
- 0x00a4: 0x0446, # CYRILLIC SMALL LETTER TSE
- 0x00a5: 0x0426, # CYRILLIC CAPITAL LETTER TSE
- 0x00a6: 0x0434, # CYRILLIC SMALL LETTER DE
- 0x00a7: 0x0414, # CYRILLIC CAPITAL LETTER DE
- 0x00a8: 0x0435, # CYRILLIC SMALL LETTER IE
- 0x00a9: 0x0415, # CYRILLIC CAPITAL LETTER IE
- 0x00aa: 0x0444, # CYRILLIC SMALL LETTER EF
- 0x00ab: 0x0424, # CYRILLIC CAPITAL LETTER EF
- 0x00ac: 0x0433, # CYRILLIC SMALL LETTER GHE
- 0x00ad: 0x0413, # CYRILLIC CAPITAL LETTER GHE
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x0445, # CYRILLIC SMALL LETTER HA
- 0x00b6: 0x0425, # CYRILLIC CAPITAL LETTER HA
- 0x00b7: 0x0438, # CYRILLIC SMALL LETTER I
- 0x00b8: 0x0418, # CYRILLIC CAPITAL LETTER I
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x0439, # CYRILLIC SMALL LETTER SHORT I
- 0x00be: 0x0419, # CYRILLIC CAPITAL LETTER SHORT I
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x043a, # CYRILLIC SMALL LETTER KA
- 0x00c7: 0x041a, # CYRILLIC CAPITAL LETTER KA
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x00a4, # CURRENCY SIGN
- 0x00d0: 0x043b, # CYRILLIC SMALL LETTER EL
- 0x00d1: 0x041b, # CYRILLIC CAPITAL LETTER EL
- 0x00d2: 0x043c, # CYRILLIC SMALL LETTER EM
- 0x00d3: 0x041c, # CYRILLIC CAPITAL LETTER EM
- 0x00d4: 0x043d, # CYRILLIC SMALL LETTER EN
- 0x00d5: 0x041d, # CYRILLIC CAPITAL LETTER EN
- 0x00d6: 0x043e, # CYRILLIC SMALL LETTER O
- 0x00d7: 0x041e, # CYRILLIC CAPITAL LETTER O
- 0x00d8: 0x043f, # CYRILLIC SMALL LETTER PE
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x041f, # CYRILLIC CAPITAL LETTER PE
- 0x00de: 0x044f, # CYRILLIC SMALL LETTER YA
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x042f, # CYRILLIC CAPITAL LETTER YA
- 0x00e1: 0x0440, # CYRILLIC SMALL LETTER ER
- 0x00e2: 0x0420, # CYRILLIC CAPITAL LETTER ER
- 0x00e3: 0x0441, # CYRILLIC SMALL LETTER ES
- 0x00e4: 0x0421, # CYRILLIC CAPITAL LETTER ES
- 0x00e5: 0x0442, # CYRILLIC SMALL LETTER TE
- 0x00e6: 0x0422, # CYRILLIC CAPITAL LETTER TE
- 0x00e7: 0x0443, # CYRILLIC SMALL LETTER U
- 0x00e8: 0x0423, # CYRILLIC CAPITAL LETTER U
- 0x00e9: 0x0436, # CYRILLIC SMALL LETTER ZHE
- 0x00ea: 0x0416, # CYRILLIC CAPITAL LETTER ZHE
- 0x00eb: 0x0432, # CYRILLIC SMALL LETTER VE
- 0x00ec: 0x0412, # CYRILLIC CAPITAL LETTER VE
- 0x00ed: 0x044c, # CYRILLIC SMALL LETTER SOFT SIGN
- 0x00ee: 0x042c, # CYRILLIC CAPITAL LETTER SOFT SIGN
- 0x00ef: 0x2116, # NUMERO SIGN
- 0x00f0: 0x00ad, # SOFT HYPHEN
- 0x00f1: 0x044b, # CYRILLIC SMALL LETTER YERU
- 0x00f2: 0x042b, # CYRILLIC CAPITAL LETTER YERU
- 0x00f3: 0x0437, # CYRILLIC SMALL LETTER ZE
- 0x00f4: 0x0417, # CYRILLIC CAPITAL LETTER ZE
- 0x00f5: 0x0448, # CYRILLIC SMALL LETTER SHA
- 0x00f6: 0x0428, # CYRILLIC CAPITAL LETTER SHA
- 0x00f7: 0x044d, # CYRILLIC SMALL LETTER E
- 0x00f8: 0x042d, # CYRILLIC CAPITAL LETTER E
- 0x00f9: 0x0449, # CYRILLIC SMALL LETTER SHCHA
- 0x00fa: 0x0429, # CYRILLIC CAPITAL LETTER SHCHA
- 0x00fb: 0x0447, # CYRILLIC SMALL LETTER CHE
- 0x00fc: 0x0427, # CYRILLIC CAPITAL LETTER CHE
- 0x00fd: 0x00a7, # SECTION SIGN
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\u0452' # 0x0080 -> CYRILLIC SMALL LETTER DJE
- '\u0402' # 0x0081 -> CYRILLIC CAPITAL LETTER DJE
- '\u0453' # 0x0082 -> CYRILLIC SMALL LETTER GJE
- '\u0403' # 0x0083 -> CYRILLIC CAPITAL LETTER GJE
- '\u0451' # 0x0084 -> CYRILLIC SMALL LETTER IO
- '\u0401' # 0x0085 -> CYRILLIC CAPITAL LETTER IO
- '\u0454' # 0x0086 -> CYRILLIC SMALL LETTER UKRAINIAN IE
- '\u0404' # 0x0087 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
- '\u0455' # 0x0088 -> CYRILLIC SMALL LETTER DZE
- '\u0405' # 0x0089 -> CYRILLIC CAPITAL LETTER DZE
- '\u0456' # 0x008a -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
- '\u0406' # 0x008b -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
- '\u0457' # 0x008c -> CYRILLIC SMALL LETTER YI
- '\u0407' # 0x008d -> CYRILLIC CAPITAL LETTER YI
- '\u0458' # 0x008e -> CYRILLIC SMALL LETTER JE
- '\u0408' # 0x008f -> CYRILLIC CAPITAL LETTER JE
- '\u0459' # 0x0090 -> CYRILLIC SMALL LETTER LJE
- '\u0409' # 0x0091 -> CYRILLIC CAPITAL LETTER LJE
- '\u045a' # 0x0092 -> CYRILLIC SMALL LETTER NJE
- '\u040a' # 0x0093 -> CYRILLIC CAPITAL LETTER NJE
- '\u045b' # 0x0094 -> CYRILLIC SMALL LETTER TSHE
- '\u040b' # 0x0095 -> CYRILLIC CAPITAL LETTER TSHE
- '\u045c' # 0x0096 -> CYRILLIC SMALL LETTER KJE
- '\u040c' # 0x0097 -> CYRILLIC CAPITAL LETTER KJE
- '\u045e' # 0x0098 -> CYRILLIC SMALL LETTER SHORT U
- '\u040e' # 0x0099 -> CYRILLIC CAPITAL LETTER SHORT U
- '\u045f' # 0x009a -> CYRILLIC SMALL LETTER DZHE
- '\u040f' # 0x009b -> CYRILLIC CAPITAL LETTER DZHE
- '\u044e' # 0x009c -> CYRILLIC SMALL LETTER YU
- '\u042e' # 0x009d -> CYRILLIC CAPITAL LETTER YU
- '\u044a' # 0x009e -> CYRILLIC SMALL LETTER HARD SIGN
- '\u042a' # 0x009f -> CYRILLIC CAPITAL LETTER HARD SIGN
- '\u0430' # 0x00a0 -> CYRILLIC SMALL LETTER A
- '\u0410' # 0x00a1 -> CYRILLIC CAPITAL LETTER A
- '\u0431' # 0x00a2 -> CYRILLIC SMALL LETTER BE
- '\u0411' # 0x00a3 -> CYRILLIC CAPITAL LETTER BE
- '\u0446' # 0x00a4 -> CYRILLIC SMALL LETTER TSE
- '\u0426' # 0x00a5 -> CYRILLIC CAPITAL LETTER TSE
- '\u0434' # 0x00a6 -> CYRILLIC SMALL LETTER DE
- '\u0414' # 0x00a7 -> CYRILLIC CAPITAL LETTER DE
- '\u0435' # 0x00a8 -> CYRILLIC SMALL LETTER IE
- '\u0415' # 0x00a9 -> CYRILLIC CAPITAL LETTER IE
- '\u0444' # 0x00aa -> CYRILLIC SMALL LETTER EF
- '\u0424' # 0x00ab -> CYRILLIC CAPITAL LETTER EF
- '\u0433' # 0x00ac -> CYRILLIC SMALL LETTER GHE
- '\u0413' # 0x00ad -> CYRILLIC CAPITAL LETTER GHE
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u0445' # 0x00b5 -> CYRILLIC SMALL LETTER HA
- '\u0425' # 0x00b6 -> CYRILLIC CAPITAL LETTER HA
- '\u0438' # 0x00b7 -> CYRILLIC SMALL LETTER I
- '\u0418' # 0x00b8 -> CYRILLIC CAPITAL LETTER I
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u0439' # 0x00bd -> CYRILLIC SMALL LETTER SHORT I
- '\u0419' # 0x00be -> CYRILLIC CAPITAL LETTER SHORT I
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u043a' # 0x00c6 -> CYRILLIC SMALL LETTER KA
- '\u041a' # 0x00c7 -> CYRILLIC CAPITAL LETTER KA
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\xa4' # 0x00cf -> CURRENCY SIGN
- '\u043b' # 0x00d0 -> CYRILLIC SMALL LETTER EL
- '\u041b' # 0x00d1 -> CYRILLIC CAPITAL LETTER EL
- '\u043c' # 0x00d2 -> CYRILLIC SMALL LETTER EM
- '\u041c' # 0x00d3 -> CYRILLIC CAPITAL LETTER EM
- '\u043d' # 0x00d4 -> CYRILLIC SMALL LETTER EN
- '\u041d' # 0x00d5 -> CYRILLIC CAPITAL LETTER EN
- '\u043e' # 0x00d6 -> CYRILLIC SMALL LETTER O
- '\u041e' # 0x00d7 -> CYRILLIC CAPITAL LETTER O
- '\u043f' # 0x00d8 -> CYRILLIC SMALL LETTER PE
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u041f' # 0x00dd -> CYRILLIC CAPITAL LETTER PE
- '\u044f' # 0x00de -> CYRILLIC SMALL LETTER YA
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\u042f' # 0x00e0 -> CYRILLIC CAPITAL LETTER YA
- '\u0440' # 0x00e1 -> CYRILLIC SMALL LETTER ER
- '\u0420' # 0x00e2 -> CYRILLIC CAPITAL LETTER ER
- '\u0441' # 0x00e3 -> CYRILLIC SMALL LETTER ES
- '\u0421' # 0x00e4 -> CYRILLIC CAPITAL LETTER ES
- '\u0442' # 0x00e5 -> CYRILLIC SMALL LETTER TE
- '\u0422' # 0x00e6 -> CYRILLIC CAPITAL LETTER TE
- '\u0443' # 0x00e7 -> CYRILLIC SMALL LETTER U
- '\u0423' # 0x00e8 -> CYRILLIC CAPITAL LETTER U
- '\u0436' # 0x00e9 -> CYRILLIC SMALL LETTER ZHE
- '\u0416' # 0x00ea -> CYRILLIC CAPITAL LETTER ZHE
- '\u0432' # 0x00eb -> CYRILLIC SMALL LETTER VE
- '\u0412' # 0x00ec -> CYRILLIC CAPITAL LETTER VE
- '\u044c' # 0x00ed -> CYRILLIC SMALL LETTER SOFT SIGN
- '\u042c' # 0x00ee -> CYRILLIC CAPITAL LETTER SOFT SIGN
- '\u2116' # 0x00ef -> NUMERO SIGN
- '\xad' # 0x00f0 -> SOFT HYPHEN
- '\u044b' # 0x00f1 -> CYRILLIC SMALL LETTER YERU
- '\u042b' # 0x00f2 -> CYRILLIC CAPITAL LETTER YERU
- '\u0437' # 0x00f3 -> CYRILLIC SMALL LETTER ZE
- '\u0417' # 0x00f4 -> CYRILLIC CAPITAL LETTER ZE
- '\u0448' # 0x00f5 -> CYRILLIC SMALL LETTER SHA
- '\u0428' # 0x00f6 -> CYRILLIC CAPITAL LETTER SHA
- '\u044d' # 0x00f7 -> CYRILLIC SMALL LETTER E
- '\u042d' # 0x00f8 -> CYRILLIC CAPITAL LETTER E
- '\u0449' # 0x00f9 -> CYRILLIC SMALL LETTER SHCHA
- '\u0429' # 0x00fa -> CYRILLIC CAPITAL LETTER SHCHA
- '\u0447' # 0x00fb -> CYRILLIC SMALL LETTER CHE
- '\u0427' # 0x00fc -> CYRILLIC CAPITAL LETTER CHE
- '\xa7' # 0x00fd -> SECTION SIGN
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a4: 0x00cf, # CURRENCY SIGN
- 0x00a7: 0x00fd, # SECTION SIGN
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ad: 0x00f0, # SOFT HYPHEN
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x0401: 0x0085, # CYRILLIC CAPITAL LETTER IO
- 0x0402: 0x0081, # CYRILLIC CAPITAL LETTER DJE
- 0x0403: 0x0083, # CYRILLIC CAPITAL LETTER GJE
- 0x0404: 0x0087, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
- 0x0405: 0x0089, # CYRILLIC CAPITAL LETTER DZE
- 0x0406: 0x008b, # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
- 0x0407: 0x008d, # CYRILLIC CAPITAL LETTER YI
- 0x0408: 0x008f, # CYRILLIC CAPITAL LETTER JE
- 0x0409: 0x0091, # CYRILLIC CAPITAL LETTER LJE
- 0x040a: 0x0093, # CYRILLIC CAPITAL LETTER NJE
- 0x040b: 0x0095, # CYRILLIC CAPITAL LETTER TSHE
- 0x040c: 0x0097, # CYRILLIC CAPITAL LETTER KJE
- 0x040e: 0x0099, # CYRILLIC CAPITAL LETTER SHORT U
- 0x040f: 0x009b, # CYRILLIC CAPITAL LETTER DZHE
- 0x0410: 0x00a1, # CYRILLIC CAPITAL LETTER A
- 0x0411: 0x00a3, # CYRILLIC CAPITAL LETTER BE
- 0x0412: 0x00ec, # CYRILLIC CAPITAL LETTER VE
- 0x0413: 0x00ad, # CYRILLIC CAPITAL LETTER GHE
- 0x0414: 0x00a7, # CYRILLIC CAPITAL LETTER DE
- 0x0415: 0x00a9, # CYRILLIC CAPITAL LETTER IE
- 0x0416: 0x00ea, # CYRILLIC CAPITAL LETTER ZHE
- 0x0417: 0x00f4, # CYRILLIC CAPITAL LETTER ZE
- 0x0418: 0x00b8, # CYRILLIC CAPITAL LETTER I
- 0x0419: 0x00be, # CYRILLIC CAPITAL LETTER SHORT I
- 0x041a: 0x00c7, # CYRILLIC CAPITAL LETTER KA
- 0x041b: 0x00d1, # CYRILLIC CAPITAL LETTER EL
- 0x041c: 0x00d3, # CYRILLIC CAPITAL LETTER EM
- 0x041d: 0x00d5, # CYRILLIC CAPITAL LETTER EN
- 0x041e: 0x00d7, # CYRILLIC CAPITAL LETTER O
- 0x041f: 0x00dd, # CYRILLIC CAPITAL LETTER PE
- 0x0420: 0x00e2, # CYRILLIC CAPITAL LETTER ER
- 0x0421: 0x00e4, # CYRILLIC CAPITAL LETTER ES
- 0x0422: 0x00e6, # CYRILLIC CAPITAL LETTER TE
- 0x0423: 0x00e8, # CYRILLIC CAPITAL LETTER U
- 0x0424: 0x00ab, # CYRILLIC CAPITAL LETTER EF
- 0x0425: 0x00b6, # CYRILLIC CAPITAL LETTER HA
- 0x0426: 0x00a5, # CYRILLIC CAPITAL LETTER TSE
- 0x0427: 0x00fc, # CYRILLIC CAPITAL LETTER CHE
- 0x0428: 0x00f6, # CYRILLIC CAPITAL LETTER SHA
- 0x0429: 0x00fa, # CYRILLIC CAPITAL LETTER SHCHA
- 0x042a: 0x009f, # CYRILLIC CAPITAL LETTER HARD SIGN
- 0x042b: 0x00f2, # CYRILLIC CAPITAL LETTER YERU
- 0x042c: 0x00ee, # CYRILLIC CAPITAL LETTER SOFT SIGN
- 0x042d: 0x00f8, # CYRILLIC CAPITAL LETTER E
- 0x042e: 0x009d, # CYRILLIC CAPITAL LETTER YU
- 0x042f: 0x00e0, # CYRILLIC CAPITAL LETTER YA
- 0x0430: 0x00a0, # CYRILLIC SMALL LETTER A
- 0x0431: 0x00a2, # CYRILLIC SMALL LETTER BE
- 0x0432: 0x00eb, # CYRILLIC SMALL LETTER VE
- 0x0433: 0x00ac, # CYRILLIC SMALL LETTER GHE
- 0x0434: 0x00a6, # CYRILLIC SMALL LETTER DE
- 0x0435: 0x00a8, # CYRILLIC SMALL LETTER IE
- 0x0436: 0x00e9, # CYRILLIC SMALL LETTER ZHE
- 0x0437: 0x00f3, # CYRILLIC SMALL LETTER ZE
- 0x0438: 0x00b7, # CYRILLIC SMALL LETTER I
- 0x0439: 0x00bd, # CYRILLIC SMALL LETTER SHORT I
- 0x043a: 0x00c6, # CYRILLIC SMALL LETTER KA
- 0x043b: 0x00d0, # CYRILLIC SMALL LETTER EL
- 0x043c: 0x00d2, # CYRILLIC SMALL LETTER EM
- 0x043d: 0x00d4, # CYRILLIC SMALL LETTER EN
- 0x043e: 0x00d6, # CYRILLIC SMALL LETTER O
- 0x043f: 0x00d8, # CYRILLIC SMALL LETTER PE
- 0x0440: 0x00e1, # CYRILLIC SMALL LETTER ER
- 0x0441: 0x00e3, # CYRILLIC SMALL LETTER ES
- 0x0442: 0x00e5, # CYRILLIC SMALL LETTER TE
- 0x0443: 0x00e7, # CYRILLIC SMALL LETTER U
- 0x0444: 0x00aa, # CYRILLIC SMALL LETTER EF
- 0x0445: 0x00b5, # CYRILLIC SMALL LETTER HA
- 0x0446: 0x00a4, # CYRILLIC SMALL LETTER TSE
- 0x0447: 0x00fb, # CYRILLIC SMALL LETTER CHE
- 0x0448: 0x00f5, # CYRILLIC SMALL LETTER SHA
- 0x0449: 0x00f9, # CYRILLIC SMALL LETTER SHCHA
- 0x044a: 0x009e, # CYRILLIC SMALL LETTER HARD SIGN
- 0x044b: 0x00f1, # CYRILLIC SMALL LETTER YERU
- 0x044c: 0x00ed, # CYRILLIC SMALL LETTER SOFT SIGN
- 0x044d: 0x00f7, # CYRILLIC SMALL LETTER E
- 0x044e: 0x009c, # CYRILLIC SMALL LETTER YU
- 0x044f: 0x00de, # CYRILLIC SMALL LETTER YA
- 0x0451: 0x0084, # CYRILLIC SMALL LETTER IO
- 0x0452: 0x0080, # CYRILLIC SMALL LETTER DJE
- 0x0453: 0x0082, # CYRILLIC SMALL LETTER GJE
- 0x0454: 0x0086, # CYRILLIC SMALL LETTER UKRAINIAN IE
- 0x0455: 0x0088, # CYRILLIC SMALL LETTER DZE
- 0x0456: 0x008a, # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
- 0x0457: 0x008c, # CYRILLIC SMALL LETTER YI
- 0x0458: 0x008e, # CYRILLIC SMALL LETTER JE
- 0x0459: 0x0090, # CYRILLIC SMALL LETTER LJE
- 0x045a: 0x0092, # CYRILLIC SMALL LETTER NJE
- 0x045b: 0x0094, # CYRILLIC SMALL LETTER TSHE
- 0x045c: 0x0096, # CYRILLIC SMALL LETTER KJE
- 0x045e: 0x0098, # CYRILLIC SMALL LETTER SHORT U
- 0x045f: 0x009a, # CYRILLIC SMALL LETTER DZHE
- 0x2116: 0x00ef, # NUMERO SIGN
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp856.py b/EasyTrans/Lib/encodings/cp856.py
deleted file mode 100644
index cacbfb2f..00000000
--- a/EasyTrans/Lib/encodings/cp856.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp856 generated from 'MAPPINGS/VENDORS/MISC/CP856.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp856',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\u05d0' # 0x80 -> HEBREW LETTER ALEF
- '\u05d1' # 0x81 -> HEBREW LETTER BET
- '\u05d2' # 0x82 -> HEBREW LETTER GIMEL
- '\u05d3' # 0x83 -> HEBREW LETTER DALET
- '\u05d4' # 0x84 -> HEBREW LETTER HE
- '\u05d5' # 0x85 -> HEBREW LETTER VAV
- '\u05d6' # 0x86 -> HEBREW LETTER ZAYIN
- '\u05d7' # 0x87 -> HEBREW LETTER HET
- '\u05d8' # 0x88 -> HEBREW LETTER TET
- '\u05d9' # 0x89 -> HEBREW LETTER YOD
- '\u05da' # 0x8A -> HEBREW LETTER FINAL KAF
- '\u05db' # 0x8B -> HEBREW LETTER KAF
- '\u05dc' # 0x8C -> HEBREW LETTER LAMED
- '\u05dd' # 0x8D -> HEBREW LETTER FINAL MEM
- '\u05de' # 0x8E -> HEBREW LETTER MEM
- '\u05df' # 0x8F -> HEBREW LETTER FINAL NUN
- '\u05e0' # 0x90 -> HEBREW LETTER NUN
- '\u05e1' # 0x91 -> HEBREW LETTER SAMEKH
- '\u05e2' # 0x92 -> HEBREW LETTER AYIN
- '\u05e3' # 0x93 -> HEBREW LETTER FINAL PE
- '\u05e4' # 0x94 -> HEBREW LETTER PE
- '\u05e5' # 0x95 -> HEBREW LETTER FINAL TSADI
- '\u05e6' # 0x96 -> HEBREW LETTER TSADI
- '\u05e7' # 0x97 -> HEBREW LETTER QOF
- '\u05e8' # 0x98 -> HEBREW LETTER RESH
- '\u05e9' # 0x99 -> HEBREW LETTER SHIN
- '\u05ea' # 0x9A -> HEBREW LETTER TAV
- '\ufffe' # 0x9B -> UNDEFINED
- '\xa3' # 0x9C -> POUND SIGN
- '\ufffe' # 0x9D -> UNDEFINED
- '\xd7' # 0x9E -> MULTIPLICATION SIGN
- '\ufffe' # 0x9F -> UNDEFINED
- '\ufffe' # 0xA0 -> UNDEFINED
- '\ufffe' # 0xA1 -> UNDEFINED
- '\ufffe' # 0xA2 -> UNDEFINED
- '\ufffe' # 0xA3 -> UNDEFINED
- '\ufffe' # 0xA4 -> UNDEFINED
- '\ufffe' # 0xA5 -> UNDEFINED
- '\ufffe' # 0xA6 -> UNDEFINED
- '\ufffe' # 0xA7 -> UNDEFINED
- '\ufffe' # 0xA8 -> UNDEFINED
- '\xae' # 0xA9 -> REGISTERED SIGN
- '\xac' # 0xAA -> NOT SIGN
- '\xbd' # 0xAB -> VULGAR FRACTION ONE HALF
- '\xbc' # 0xAC -> VULGAR FRACTION ONE QUARTER
- '\ufffe' # 0xAD -> UNDEFINED
- '\xab' # 0xAE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0xAF -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0xB0 -> LIGHT SHADE
- '\u2592' # 0xB1 -> MEDIUM SHADE
- '\u2593' # 0xB2 -> DARK SHADE
- '\u2502' # 0xB3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0xB4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\ufffe' # 0xB5 -> UNDEFINED
- '\ufffe' # 0xB6 -> UNDEFINED
- '\ufffe' # 0xB7 -> UNDEFINED
- '\xa9' # 0xB8 -> COPYRIGHT SIGN
- '\u2563' # 0xB9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0xBA -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0xBB -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0xBC -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\xa2' # 0xBD -> CENT SIGN
- '\xa5' # 0xBE -> YEN SIGN
- '\u2510' # 0xBF -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0xC0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0xC1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0xC2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0xC3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0xC4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0xC5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\ufffe' # 0xC6 -> UNDEFINED
- '\ufffe' # 0xC7 -> UNDEFINED
- '\u255a' # 0xC8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0xC9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0xCA -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0xCB -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0xCC -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0xCD -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0xCE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\xa4' # 0xCF -> CURRENCY SIGN
- '\ufffe' # 0xD0 -> UNDEFINED
- '\ufffe' # 0xD1 -> UNDEFINED
- '\ufffe' # 0xD2 -> UNDEFINED
- '\ufffe' # 0xD3 -> UNDEFINEDS
- '\ufffe' # 0xD4 -> UNDEFINED
- '\ufffe' # 0xD5 -> UNDEFINED
- '\ufffe' # 0xD6 -> UNDEFINEDE
- '\ufffe' # 0xD7 -> UNDEFINED
- '\ufffe' # 0xD8 -> UNDEFINED
- '\u2518' # 0xD9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0xDA -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0xDB -> FULL BLOCK
- '\u2584' # 0xDC -> LOWER HALF BLOCK
- '\xa6' # 0xDD -> BROKEN BAR
- '\ufffe' # 0xDE -> UNDEFINED
- '\u2580' # 0xDF -> UPPER HALF BLOCK
- '\ufffe' # 0xE0 -> UNDEFINED
- '\ufffe' # 0xE1 -> UNDEFINED
- '\ufffe' # 0xE2 -> UNDEFINED
- '\ufffe' # 0xE3 -> UNDEFINED
- '\ufffe' # 0xE4 -> UNDEFINED
- '\ufffe' # 0xE5 -> UNDEFINED
- '\xb5' # 0xE6 -> MICRO SIGN
- '\ufffe' # 0xE7 -> UNDEFINED
- '\ufffe' # 0xE8 -> UNDEFINED
- '\ufffe' # 0xE9 -> UNDEFINED
- '\ufffe' # 0xEA -> UNDEFINED
- '\ufffe' # 0xEB -> UNDEFINED
- '\ufffe' # 0xEC -> UNDEFINED
- '\ufffe' # 0xED -> UNDEFINED
- '\xaf' # 0xEE -> MACRON
- '\xb4' # 0xEF -> ACUTE ACCENT
- '\xad' # 0xF0 -> SOFT HYPHEN
- '\xb1' # 0xF1 -> PLUS-MINUS SIGN
- '\u2017' # 0xF2 -> DOUBLE LOW LINE
- '\xbe' # 0xF3 -> VULGAR FRACTION THREE QUARTERS
- '\xb6' # 0xF4 -> PILCROW SIGN
- '\xa7' # 0xF5 -> SECTION SIGN
- '\xf7' # 0xF6 -> DIVISION SIGN
- '\xb8' # 0xF7 -> CEDILLA
- '\xb0' # 0xF8 -> DEGREE SIGN
- '\xa8' # 0xF9 -> DIAERESIS
- '\xb7' # 0xFA -> MIDDLE DOT
- '\xb9' # 0xFB -> SUPERSCRIPT ONE
- '\xb3' # 0xFC -> SUPERSCRIPT THREE
- '\xb2' # 0xFD -> SUPERSCRIPT TWO
- '\u25a0' # 0xFE -> BLACK SQUARE
- '\xa0' # 0xFF -> NO-BREAK SPACE
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp857.py b/EasyTrans/Lib/encodings/cp857.py
deleted file mode 100644
index 741b059b..00000000
--- a/EasyTrans/Lib/encodings/cp857.py
+++ /dev/null
@@ -1,694 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP857.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp857',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
- 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
- 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
- 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
- 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x008d: 0x0131, # LATIN SMALL LETTER DOTLESS I
- 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
- 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
- 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
- 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
- 0x0098: 0x0130, # LATIN CAPITAL LETTER I WITH DOT ABOVE
- 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
- 0x009c: 0x00a3, # POUND SIGN
- 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
- 0x009e: 0x015e, # LATIN CAPITAL LETTER S WITH CEDILLA
- 0x009f: 0x015f, # LATIN SMALL LETTER S WITH CEDILLA
- 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
- 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
- 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
- 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
- 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
- 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00a6: 0x011e, # LATIN CAPITAL LETTER G WITH BREVE
- 0x00a7: 0x011f, # LATIN SMALL LETTER G WITH BREVE
- 0x00a8: 0x00bf, # INVERTED QUESTION MARK
- 0x00a9: 0x00ae, # REGISTERED SIGN
- 0x00aa: 0x00ac, # NOT SIGN
- 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
- 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
- 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x00b6: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x00b7: 0x00c0, # LATIN CAPITAL LETTER A WITH GRAVE
- 0x00b8: 0x00a9, # COPYRIGHT SIGN
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x00a2, # CENT SIGN
- 0x00be: 0x00a5, # YEN SIGN
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x00e3, # LATIN SMALL LETTER A WITH TILDE
- 0x00c7: 0x00c3, # LATIN CAPITAL LETTER A WITH TILDE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x00a4, # CURRENCY SIGN
- 0x00d0: 0x00ba, # MASCULINE ORDINAL INDICATOR
- 0x00d1: 0x00aa, # FEMININE ORDINAL INDICATOR
- 0x00d2: 0x00ca, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- 0x00d3: 0x00cb, # LATIN CAPITAL LETTER E WITH DIAERESIS
- 0x00d4: 0x00c8, # LATIN CAPITAL LETTER E WITH GRAVE
- 0x00d5: None, # UNDEFINED
- 0x00d6: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x00d7: 0x00ce, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- 0x00d8: 0x00cf, # LATIN CAPITAL LETTER I WITH DIAERESIS
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x00a6, # BROKEN BAR
- 0x00de: 0x00cc, # LATIN CAPITAL LETTER I WITH GRAVE
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
- 0x00e2: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x00e3: 0x00d2, # LATIN CAPITAL LETTER O WITH GRAVE
- 0x00e4: 0x00f5, # LATIN SMALL LETTER O WITH TILDE
- 0x00e5: 0x00d5, # LATIN CAPITAL LETTER O WITH TILDE
- 0x00e6: 0x00b5, # MICRO SIGN
- 0x00e7: None, # UNDEFINED
- 0x00e8: 0x00d7, # MULTIPLICATION SIGN
- 0x00e9: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x00ea: 0x00db, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- 0x00eb: 0x00d9, # LATIN CAPITAL LETTER U WITH GRAVE
- 0x00ed: 0x00ff, # LATIN SMALL LETTER Y WITH DIAERESIS
- 0x00ee: 0x00af, # MACRON
- 0x00ef: 0x00b4, # ACUTE ACCENT
- 0x00f0: 0x00ad, # SOFT HYPHEN
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: None, # UNDEFINED
- 0x00f3: 0x00be, # VULGAR FRACTION THREE QUARTERS
- 0x00f4: 0x00b6, # PILCROW SIGN
- 0x00f5: 0x00a7, # SECTION SIGN
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x00b8, # CEDILLA
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x00a8, # DIAERESIS
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x00b9, # SUPERSCRIPT ONE
- 0x00fc: 0x00b3, # SUPERSCRIPT THREE
- 0x00fd: 0x00b2, # SUPERSCRIPT TWO
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
- '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
- '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\u0131' # 0x008d -> LATIN SMALL LETTER DOTLESS I
- '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
- '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
- '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
- '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
- '\u0130' # 0x0098 -> LATIN CAPITAL LETTER I WITH DOT ABOVE
- '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
- '\xa3' # 0x009c -> POUND SIGN
- '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
- '\u015e' # 0x009e -> LATIN CAPITAL LETTER S WITH CEDILLA
- '\u015f' # 0x009f -> LATIN SMALL LETTER S WITH CEDILLA
- '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
- '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
- '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
- '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
- '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
- '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
- '\u011e' # 0x00a6 -> LATIN CAPITAL LETTER G WITH BREVE
- '\u011f' # 0x00a7 -> LATIN SMALL LETTER G WITH BREVE
- '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
- '\xae' # 0x00a9 -> REGISTERED SIGN
- '\xac' # 0x00aa -> NOT SIGN
- '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
- '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
- '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\xc1' # 0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc2' # 0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc0' # 0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xa9' # 0x00b8 -> COPYRIGHT SIGN
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\xa2' # 0x00bd -> CENT SIGN
- '\xa5' # 0x00be -> YEN SIGN
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\xe3' # 0x00c6 -> LATIN SMALL LETTER A WITH TILDE
- '\xc3' # 0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\xa4' # 0x00cf -> CURRENCY SIGN
- '\xba' # 0x00d0 -> MASCULINE ORDINAL INDICATOR
- '\xaa' # 0x00d1 -> FEMININE ORDINAL INDICATOR
- '\xca' # 0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xc8' # 0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\ufffe' # 0x00d5 -> UNDEFINED
- '\xcd' # 0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\xa6' # 0x00dd -> BROKEN BAR
- '\xcc' # 0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\xd3' # 0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
- '\xd4' # 0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xd2' # 0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xf5' # 0x00e4 -> LATIN SMALL LETTER O WITH TILDE
- '\xd5' # 0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
- '\xb5' # 0x00e6 -> MICRO SIGN
- '\ufffe' # 0x00e7 -> UNDEFINED
- '\xd7' # 0x00e8 -> MULTIPLICATION SIGN
- '\xda' # 0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
- '\xdb' # 0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\xd9' # 0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xec' # 0x00ec -> LATIN SMALL LETTER I WITH GRAVE
- '\xff' # 0x00ed -> LATIN SMALL LETTER Y WITH DIAERESIS
- '\xaf' # 0x00ee -> MACRON
- '\xb4' # 0x00ef -> ACUTE ACCENT
- '\xad' # 0x00f0 -> SOFT HYPHEN
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\ufffe' # 0x00f2 -> UNDEFINED
- '\xbe' # 0x00f3 -> VULGAR FRACTION THREE QUARTERS
- '\xb6' # 0x00f4 -> PILCROW SIGN
- '\xa7' # 0x00f5 -> SECTION SIGN
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\xb8' # 0x00f7 -> CEDILLA
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\xa8' # 0x00f9 -> DIAERESIS
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\xb9' # 0x00fb -> SUPERSCRIPT ONE
- '\xb3' # 0x00fc -> SUPERSCRIPT THREE
- '\xb2' # 0x00fd -> SUPERSCRIPT TWO
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
- 0x00a2: 0x00bd, # CENT SIGN
- 0x00a3: 0x009c, # POUND SIGN
- 0x00a4: 0x00cf, # CURRENCY SIGN
- 0x00a5: 0x00be, # YEN SIGN
- 0x00a6: 0x00dd, # BROKEN BAR
- 0x00a7: 0x00f5, # SECTION SIGN
- 0x00a8: 0x00f9, # DIAERESIS
- 0x00a9: 0x00b8, # COPYRIGHT SIGN
- 0x00aa: 0x00d1, # FEMININE ORDINAL INDICATOR
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x00aa, # NOT SIGN
- 0x00ad: 0x00f0, # SOFT HYPHEN
- 0x00ae: 0x00a9, # REGISTERED SIGN
- 0x00af: 0x00ee, # MACRON
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x00fd, # SUPERSCRIPT TWO
- 0x00b3: 0x00fc, # SUPERSCRIPT THREE
- 0x00b4: 0x00ef, # ACUTE ACCENT
- 0x00b5: 0x00e6, # MICRO SIGN
- 0x00b6: 0x00f4, # PILCROW SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x00b8: 0x00f7, # CEDILLA
- 0x00b9: 0x00fb, # SUPERSCRIPT ONE
- 0x00ba: 0x00d0, # MASCULINE ORDINAL INDICATOR
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
- 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
- 0x00be: 0x00f3, # VULGAR FRACTION THREE QUARTERS
- 0x00bf: 0x00a8, # INVERTED QUESTION MARK
- 0x00c0: 0x00b7, # LATIN CAPITAL LETTER A WITH GRAVE
- 0x00c1: 0x00b5, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x00c2: 0x00b6, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x00c3: 0x00c7, # LATIN CAPITAL LETTER A WITH TILDE
- 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
- 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x00c8: 0x00d4, # LATIN CAPITAL LETTER E WITH GRAVE
- 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x00ca: 0x00d2, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- 0x00cb: 0x00d3, # LATIN CAPITAL LETTER E WITH DIAERESIS
- 0x00cc: 0x00de, # LATIN CAPITAL LETTER I WITH GRAVE
- 0x00cd: 0x00d6, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x00ce: 0x00d7, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- 0x00cf: 0x00d8, # LATIN CAPITAL LETTER I WITH DIAERESIS
- 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00d2: 0x00e3, # LATIN CAPITAL LETTER O WITH GRAVE
- 0x00d3: 0x00e0, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00d4: 0x00e2, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x00d5: 0x00e5, # LATIN CAPITAL LETTER O WITH TILDE
- 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x00d7: 0x00e8, # MULTIPLICATION SIGN
- 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
- 0x00d9: 0x00eb, # LATIN CAPITAL LETTER U WITH GRAVE
- 0x00da: 0x00e9, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x00db: 0x00ea, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
- 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
- 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
- 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x00e3: 0x00c6, # LATIN SMALL LETTER A WITH TILDE
- 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
- 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
- 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
- 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
- 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x00ec: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
- 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
- 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
- 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
- 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
- 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x00f5: 0x00e4, # LATIN SMALL LETTER O WITH TILDE
- 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
- 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
- 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
- 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x00ff: 0x00ed, # LATIN SMALL LETTER Y WITH DIAERESIS
- 0x011e: 0x00a6, # LATIN CAPITAL LETTER G WITH BREVE
- 0x011f: 0x00a7, # LATIN SMALL LETTER G WITH BREVE
- 0x0130: 0x0098, # LATIN CAPITAL LETTER I WITH DOT ABOVE
- 0x0131: 0x008d, # LATIN SMALL LETTER DOTLESS I
- 0x015e: 0x009e, # LATIN CAPITAL LETTER S WITH CEDILLA
- 0x015f: 0x009f, # LATIN SMALL LETTER S WITH CEDILLA
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp858.py b/EasyTrans/Lib/encodings/cp858.py
deleted file mode 100644
index 7579f525..00000000
--- a/EasyTrans/Lib/encodings/cp858.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec for CP858, modified from cp850.
-
-"""
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp858',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
- 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
- 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
- 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
- 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x008d: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
- 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
- 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
- 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
- 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
- 0x0098: 0x00ff, # LATIN SMALL LETTER Y WITH DIAERESIS
- 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
- 0x009c: 0x00a3, # POUND SIGN
- 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
- 0x009e: 0x00d7, # MULTIPLICATION SIGN
- 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
- 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
- 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
- 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
- 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
- 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
- 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
- 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
- 0x00a8: 0x00bf, # INVERTED QUESTION MARK
- 0x00a9: 0x00ae, # REGISTERED SIGN
- 0x00aa: 0x00ac, # NOT SIGN
- 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
- 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
- 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x00b6: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x00b7: 0x00c0, # LATIN CAPITAL LETTER A WITH GRAVE
- 0x00b8: 0x00a9, # COPYRIGHT SIGN
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x00a2, # CENT SIGN
- 0x00be: 0x00a5, # YEN SIGN
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x00e3, # LATIN SMALL LETTER A WITH TILDE
- 0x00c7: 0x00c3, # LATIN CAPITAL LETTER A WITH TILDE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x00a4, # CURRENCY SIGN
- 0x00d0: 0x00f0, # LATIN SMALL LETTER ETH
- 0x00d1: 0x00d0, # LATIN CAPITAL LETTER ETH
- 0x00d2: 0x00ca, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- 0x00d3: 0x00cb, # LATIN CAPITAL LETTER E WITH DIAERESIS
- 0x00d4: 0x00c8, # LATIN CAPITAL LETTER E WITH GRAVE
- 0x00d5: 0x20ac, # EURO SIGN
- 0x00d6: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x00d7: 0x00ce, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- 0x00d8: 0x00cf, # LATIN CAPITAL LETTER I WITH DIAERESIS
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x00a6, # BROKEN BAR
- 0x00de: 0x00cc, # LATIN CAPITAL LETTER I WITH GRAVE
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
- 0x00e2: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x00e3: 0x00d2, # LATIN CAPITAL LETTER O WITH GRAVE
- 0x00e4: 0x00f5, # LATIN SMALL LETTER O WITH TILDE
- 0x00e5: 0x00d5, # LATIN CAPITAL LETTER O WITH TILDE
- 0x00e6: 0x00b5, # MICRO SIGN
- 0x00e7: 0x00fe, # LATIN SMALL LETTER THORN
- 0x00e8: 0x00de, # LATIN CAPITAL LETTER THORN
- 0x00e9: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x00ea: 0x00db, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- 0x00eb: 0x00d9, # LATIN CAPITAL LETTER U WITH GRAVE
- 0x00ec: 0x00fd, # LATIN SMALL LETTER Y WITH ACUTE
- 0x00ed: 0x00dd, # LATIN CAPITAL LETTER Y WITH ACUTE
- 0x00ee: 0x00af, # MACRON
- 0x00ef: 0x00b4, # ACUTE ACCENT
- 0x00f0: 0x00ad, # SOFT HYPHEN
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: 0x2017, # DOUBLE LOW LINE
- 0x00f3: 0x00be, # VULGAR FRACTION THREE QUARTERS
- 0x00f4: 0x00b6, # PILCROW SIGN
- 0x00f5: 0x00a7, # SECTION SIGN
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x00b8, # CEDILLA
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x00a8, # DIAERESIS
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x00b9, # SUPERSCRIPT ONE
- 0x00fc: 0x00b3, # SUPERSCRIPT THREE
- 0x00fd: 0x00b2, # SUPERSCRIPT TWO
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
- '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
- '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xec' # 0x008d -> LATIN SMALL LETTER I WITH GRAVE
- '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
- '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
- '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
- '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
- '\xff' # 0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
- '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
- '\xa3' # 0x009c -> POUND SIGN
- '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
- '\xd7' # 0x009e -> MULTIPLICATION SIGN
- '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
- '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
- '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
- '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
- '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
- '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
- '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
- '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
- '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
- '\xae' # 0x00a9 -> REGISTERED SIGN
- '\xac' # 0x00aa -> NOT SIGN
- '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
- '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
- '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\xc1' # 0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc2' # 0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc0' # 0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xa9' # 0x00b8 -> COPYRIGHT SIGN
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\xa2' # 0x00bd -> CENT SIGN
- '\xa5' # 0x00be -> YEN SIGN
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\xe3' # 0x00c6 -> LATIN SMALL LETTER A WITH TILDE
- '\xc3' # 0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\xa4' # 0x00cf -> CURRENCY SIGN
- '\xf0' # 0x00d0 -> LATIN SMALL LETTER ETH
- '\xd0' # 0x00d1 -> LATIN CAPITAL LETTER ETH
- '\xca' # 0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xc8' # 0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\u20ac' # 0x00d5 -> EURO SIGN
- '\xcd' # 0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\xa6' # 0x00dd -> BROKEN BAR
- '\xcc' # 0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\xd3' # 0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
- '\xd4' # 0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xd2' # 0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xf5' # 0x00e4 -> LATIN SMALL LETTER O WITH TILDE
- '\xd5' # 0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
- '\xb5' # 0x00e6 -> MICRO SIGN
- '\xfe' # 0x00e7 -> LATIN SMALL LETTER THORN
- '\xde' # 0x00e8 -> LATIN CAPITAL LETTER THORN
- '\xda' # 0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
- '\xdb' # 0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\xd9' # 0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xfd' # 0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
- '\xdd' # 0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\xaf' # 0x00ee -> MACRON
- '\xb4' # 0x00ef -> ACUTE ACCENT
- '\xad' # 0x00f0 -> SOFT HYPHEN
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\u2017' # 0x00f2 -> DOUBLE LOW LINE
- '\xbe' # 0x00f3 -> VULGAR FRACTION THREE QUARTERS
- '\xb6' # 0x00f4 -> PILCROW SIGN
- '\xa7' # 0x00f5 -> SECTION SIGN
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\xb8' # 0x00f7 -> CEDILLA
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\xa8' # 0x00f9 -> DIAERESIS
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\xb9' # 0x00fb -> SUPERSCRIPT ONE
- '\xb3' # 0x00fc -> SUPERSCRIPT THREE
- '\xb2' # 0x00fd -> SUPERSCRIPT TWO
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
- 0x00a2: 0x00bd, # CENT SIGN
- 0x00a3: 0x009c, # POUND SIGN
- 0x00a4: 0x00cf, # CURRENCY SIGN
- 0x00a5: 0x00be, # YEN SIGN
- 0x00a6: 0x00dd, # BROKEN BAR
- 0x00a7: 0x00f5, # SECTION SIGN
- 0x00a8: 0x00f9, # DIAERESIS
- 0x00a9: 0x00b8, # COPYRIGHT SIGN
- 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x00aa, # NOT SIGN
- 0x00ad: 0x00f0, # SOFT HYPHEN
- 0x00ae: 0x00a9, # REGISTERED SIGN
- 0x00af: 0x00ee, # MACRON
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x00fd, # SUPERSCRIPT TWO
- 0x00b3: 0x00fc, # SUPERSCRIPT THREE
- 0x00b4: 0x00ef, # ACUTE ACCENT
- 0x00b5: 0x00e6, # MICRO SIGN
- 0x00b6: 0x00f4, # PILCROW SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x00b8: 0x00f7, # CEDILLA
- 0x00b9: 0x00fb, # SUPERSCRIPT ONE
- 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
- 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
- 0x00be: 0x00f3, # VULGAR FRACTION THREE QUARTERS
- 0x00bf: 0x00a8, # INVERTED QUESTION MARK
- 0x00c0: 0x00b7, # LATIN CAPITAL LETTER A WITH GRAVE
- 0x00c1: 0x00b5, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x00c2: 0x00b6, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x00c3: 0x00c7, # LATIN CAPITAL LETTER A WITH TILDE
- 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
- 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x00c8: 0x00d4, # LATIN CAPITAL LETTER E WITH GRAVE
- 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x00ca: 0x00d2, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- 0x00cb: 0x00d3, # LATIN CAPITAL LETTER E WITH DIAERESIS
- 0x00cc: 0x00de, # LATIN CAPITAL LETTER I WITH GRAVE
- 0x00cd: 0x00d6, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x00ce: 0x00d7, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- 0x00cf: 0x00d8, # LATIN CAPITAL LETTER I WITH DIAERESIS
- 0x00d0: 0x00d1, # LATIN CAPITAL LETTER ETH
- 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00d2: 0x00e3, # LATIN CAPITAL LETTER O WITH GRAVE
- 0x00d3: 0x00e0, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00d4: 0x00e2, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x00d5: 0x00e5, # LATIN CAPITAL LETTER O WITH TILDE
- 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x00d7: 0x009e, # MULTIPLICATION SIGN
- 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
- 0x00d9: 0x00eb, # LATIN CAPITAL LETTER U WITH GRAVE
- 0x00da: 0x00e9, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x00db: 0x00ea, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x00dd: 0x00ed, # LATIN CAPITAL LETTER Y WITH ACUTE
- 0x00de: 0x00e8, # LATIN CAPITAL LETTER THORN
- 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
- 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
- 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
- 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x00e3: 0x00c6, # LATIN SMALL LETTER A WITH TILDE
- 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
- 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
- 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
- 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
- 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x00ec: 0x008d, # LATIN SMALL LETTER I WITH GRAVE
- 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
- 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x00f0: 0x00d0, # LATIN SMALL LETTER ETH
- 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
- 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
- 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
- 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x00f5: 0x00e4, # LATIN SMALL LETTER O WITH TILDE
- 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
- 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
- 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
- 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x00fd: 0x00ec, # LATIN SMALL LETTER Y WITH ACUTE
- 0x00fe: 0x00e7, # LATIN SMALL LETTER THORN
- 0x00ff: 0x0098, # LATIN SMALL LETTER Y WITH DIAERESIS
- 0x20ac: 0x00d5, # EURO SIGN
- 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
- 0x2017: 0x00f2, # DOUBLE LOW LINE
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp860.py b/EasyTrans/Lib/encodings/cp860.py
deleted file mode 100644
index 65903e74..00000000
--- a/EasyTrans/Lib/encodings/cp860.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP860.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp860',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
- 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x0084: 0x00e3, # LATIN SMALL LETTER A WITH TILDE
- 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
- 0x0086: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
- 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x0089: 0x00ca, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
- 0x008b: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x008c: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x008d: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
- 0x008e: 0x00c3, # LATIN CAPITAL LETTER A WITH TILDE
- 0x008f: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x0091: 0x00c0, # LATIN CAPITAL LETTER A WITH GRAVE
- 0x0092: 0x00c8, # LATIN CAPITAL LETTER E WITH GRAVE
- 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x0094: 0x00f5, # LATIN SMALL LETTER O WITH TILDE
- 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
- 0x0096: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
- 0x0098: 0x00cc, # LATIN CAPITAL LETTER I WITH GRAVE
- 0x0099: 0x00d5, # LATIN CAPITAL LETTER O WITH TILDE
- 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x009b: 0x00a2, # CENT SIGN
- 0x009c: 0x00a3, # POUND SIGN
- 0x009d: 0x00d9, # LATIN CAPITAL LETTER U WITH GRAVE
- 0x009e: 0x20a7, # PESETA SIGN
- 0x009f: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
- 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
- 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
- 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
- 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
- 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
- 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
- 0x00a8: 0x00bf, # INVERTED QUESTION MARK
- 0x00a9: 0x00d2, # LATIN CAPITAL LETTER O WITH GRAVE
- 0x00aa: 0x00ac, # NOT SIGN
- 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
- 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
- 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x258c, # LEFT HALF BLOCK
- 0x00de: 0x2590, # RIGHT HALF BLOCK
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
- 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
- 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
- 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
- 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
- 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
- 0x00e6: 0x00b5, # MICRO SIGN
- 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
- 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
- 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
- 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
- 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
- 0x00ec: 0x221e, # INFINITY
- 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
- 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
- 0x00ef: 0x2229, # INTERSECTION
- 0x00f0: 0x2261, # IDENTICAL TO
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
- 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
- 0x00f4: 0x2320, # TOP HALF INTEGRAL
- 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x2248, # ALMOST EQUAL TO
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x2219, # BULLET OPERATOR
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x221a, # SQUARE ROOT
- 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x00fd: 0x00b2, # SUPERSCRIPT TWO
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
- '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe3' # 0x0084 -> LATIN SMALL LETTER A WITH TILDE
- '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
- '\xc1' # 0x0086 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xca' # 0x0089 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
- '\xcd' # 0x008b -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xd4' # 0x008c -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xec' # 0x008d -> LATIN SMALL LETTER I WITH GRAVE
- '\xc3' # 0x008e -> LATIN CAPITAL LETTER A WITH TILDE
- '\xc2' # 0x008f -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xc0' # 0x0091 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xc8' # 0x0092 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf5' # 0x0094 -> LATIN SMALL LETTER O WITH TILDE
- '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
- '\xda' # 0x0096 -> LATIN CAPITAL LETTER U WITH ACUTE
- '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
- '\xcc' # 0x0098 -> LATIN CAPITAL LETTER I WITH GRAVE
- '\xd5' # 0x0099 -> LATIN CAPITAL LETTER O WITH TILDE
- '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xa2' # 0x009b -> CENT SIGN
- '\xa3' # 0x009c -> POUND SIGN
- '\xd9' # 0x009d -> LATIN CAPITAL LETTER U WITH GRAVE
- '\u20a7' # 0x009e -> PESETA SIGN
- '\xd3' # 0x009f -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
- '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
- '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
- '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
- '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
- '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
- '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
- '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
- '\xd2' # 0x00a9 -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xac' # 0x00aa -> NOT SIGN
- '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
- '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
- '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u258c' # 0x00dd -> LEFT HALF BLOCK
- '\u2590' # 0x00de -> RIGHT HALF BLOCK
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
- '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
- '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
- '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
- '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
- '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
- '\xb5' # 0x00e6 -> MICRO SIGN
- '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
- '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
- '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
- '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
- '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
- '\u221e' # 0x00ec -> INFINITY
- '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
- '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
- '\u2229' # 0x00ef -> INTERSECTION
- '\u2261' # 0x00f0 -> IDENTICAL TO
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
- '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
- '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
- '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\u2248' # 0x00f7 -> ALMOST EQUAL TO
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\u2219' # 0x00f9 -> BULLET OPERATOR
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\u221a' # 0x00fb -> SQUARE ROOT
- '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
- '\xb2' # 0x00fd -> SUPERSCRIPT TWO
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
- 0x00a2: 0x009b, # CENT SIGN
- 0x00a3: 0x009c, # POUND SIGN
- 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x00aa, # NOT SIGN
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x00fd, # SUPERSCRIPT TWO
- 0x00b5: 0x00e6, # MICRO SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
- 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
- 0x00bf: 0x00a8, # INVERTED QUESTION MARK
- 0x00c0: 0x0091, # LATIN CAPITAL LETTER A WITH GRAVE
- 0x00c1: 0x0086, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x00c2: 0x008f, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x00c3: 0x008e, # LATIN CAPITAL LETTER A WITH TILDE
- 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x00c8: 0x0092, # LATIN CAPITAL LETTER E WITH GRAVE
- 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x00ca: 0x0089, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- 0x00cc: 0x0098, # LATIN CAPITAL LETTER I WITH GRAVE
- 0x00cd: 0x008b, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00d2: 0x00a9, # LATIN CAPITAL LETTER O WITH GRAVE
- 0x00d3: 0x009f, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00d4: 0x008c, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x00d5: 0x0099, # LATIN CAPITAL LETTER O WITH TILDE
- 0x00d9: 0x009d, # LATIN CAPITAL LETTER U WITH GRAVE
- 0x00da: 0x0096, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
- 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
- 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
- 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x00e3: 0x0084, # LATIN SMALL LETTER A WITH TILDE
- 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
- 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
- 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
- 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x00ec: 0x008d, # LATIN SMALL LETTER I WITH GRAVE
- 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
- 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
- 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
- 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
- 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x00f5: 0x0094, # LATIN SMALL LETTER O WITH TILDE
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
- 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
- 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
- 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
- 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
- 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
- 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
- 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
- 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
- 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
- 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
- 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
- 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
- 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
- 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x20a7: 0x009e, # PESETA SIGN
- 0x2219: 0x00f9, # BULLET OPERATOR
- 0x221a: 0x00fb, # SQUARE ROOT
- 0x221e: 0x00ec, # INFINITY
- 0x2229: 0x00ef, # INTERSECTION
- 0x2248: 0x00f7, # ALMOST EQUAL TO
- 0x2261: 0x00f0, # IDENTICAL TO
- 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
- 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
- 0x2320: 0x00f4, # TOP HALF INTEGRAL
- 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x258c: 0x00dd, # LEFT HALF BLOCK
- 0x2590: 0x00de, # RIGHT HALF BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp861.py b/EasyTrans/Lib/encodings/cp861.py
deleted file mode 100644
index 860a05fa..00000000
--- a/EasyTrans/Lib/encodings/cp861.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP861.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp861',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
- 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
- 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
- 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
- 0x008b: 0x00d0, # LATIN CAPITAL LETTER ETH
- 0x008c: 0x00f0, # LATIN SMALL LETTER ETH
- 0x008d: 0x00de, # LATIN CAPITAL LETTER THORN
- 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
- 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
- 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x0095: 0x00fe, # LATIN SMALL LETTER THORN
- 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x0097: 0x00dd, # LATIN CAPITAL LETTER Y WITH ACUTE
- 0x0098: 0x00fd, # LATIN SMALL LETTER Y WITH ACUTE
- 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
- 0x009c: 0x00a3, # POUND SIGN
- 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
- 0x009e: 0x20a7, # PESETA SIGN
- 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
- 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
- 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
- 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
- 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
- 0x00a4: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x00a5: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x00a6: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00a7: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x00a8: 0x00bf, # INVERTED QUESTION MARK
- 0x00a9: 0x2310, # REVERSED NOT SIGN
- 0x00aa: 0x00ac, # NOT SIGN
- 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
- 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
- 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x258c, # LEFT HALF BLOCK
- 0x00de: 0x2590, # RIGHT HALF BLOCK
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
- 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
- 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
- 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
- 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
- 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
- 0x00e6: 0x00b5, # MICRO SIGN
- 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
- 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
- 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
- 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
- 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
- 0x00ec: 0x221e, # INFINITY
- 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
- 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
- 0x00ef: 0x2229, # INTERSECTION
- 0x00f0: 0x2261, # IDENTICAL TO
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
- 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
- 0x00f4: 0x2320, # TOP HALF INTEGRAL
- 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x2248, # ALMOST EQUAL TO
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x2219, # BULLET OPERATOR
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x221a, # SQUARE ROOT
- 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x00fd: 0x00b2, # SUPERSCRIPT TWO
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
- '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
- '\xd0' # 0x008b -> LATIN CAPITAL LETTER ETH
- '\xf0' # 0x008c -> LATIN SMALL LETTER ETH
- '\xde' # 0x008d -> LATIN CAPITAL LETTER THORN
- '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
- '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
- '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xfe' # 0x0095 -> LATIN SMALL LETTER THORN
- '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xdd' # 0x0097 -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\xfd' # 0x0098 -> LATIN SMALL LETTER Y WITH ACUTE
- '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
- '\xa3' # 0x009c -> POUND SIGN
- '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
- '\u20a7' # 0x009e -> PESETA SIGN
- '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
- '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
- '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
- '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
- '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
- '\xc1' # 0x00a4 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xcd' # 0x00a5 -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xd3' # 0x00a6 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xda' # 0x00a7 -> LATIN CAPITAL LETTER U WITH ACUTE
- '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
- '\u2310' # 0x00a9 -> REVERSED NOT SIGN
- '\xac' # 0x00aa -> NOT SIGN
- '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
- '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
- '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u258c' # 0x00dd -> LEFT HALF BLOCK
- '\u2590' # 0x00de -> RIGHT HALF BLOCK
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
- '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
- '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
- '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
- '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
- '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
- '\xb5' # 0x00e6 -> MICRO SIGN
- '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
- '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
- '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
- '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
- '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
- '\u221e' # 0x00ec -> INFINITY
- '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
- '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
- '\u2229' # 0x00ef -> INTERSECTION
- '\u2261' # 0x00f0 -> IDENTICAL TO
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
- '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
- '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
- '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\u2248' # 0x00f7 -> ALMOST EQUAL TO
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\u2219' # 0x00f9 -> BULLET OPERATOR
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\u221a' # 0x00fb -> SQUARE ROOT
- '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
- '\xb2' # 0x00fd -> SUPERSCRIPT TWO
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
- 0x00a3: 0x009c, # POUND SIGN
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x00aa, # NOT SIGN
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x00fd, # SUPERSCRIPT TWO
- 0x00b5: 0x00e6, # MICRO SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
- 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
- 0x00bf: 0x00a8, # INVERTED QUESTION MARK
- 0x00c1: 0x00a4, # LATIN CAPITAL LETTER A WITH ACUTE
- 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
- 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x00cd: 0x00a5, # LATIN CAPITAL LETTER I WITH ACUTE
- 0x00d0: 0x008b, # LATIN CAPITAL LETTER ETH
- 0x00d3: 0x00a6, # LATIN CAPITAL LETTER O WITH ACUTE
- 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
- 0x00da: 0x00a7, # LATIN CAPITAL LETTER U WITH ACUTE
- 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x00dd: 0x0097, # LATIN CAPITAL LETTER Y WITH ACUTE
- 0x00de: 0x008d, # LATIN CAPITAL LETTER THORN
- 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
- 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
- 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
- 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
- 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
- 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
- 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
- 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
- 0x00f0: 0x008c, # LATIN SMALL LETTER ETH
- 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
- 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
- 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
- 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x00fd: 0x0098, # LATIN SMALL LETTER Y WITH ACUTE
- 0x00fe: 0x0095, # LATIN SMALL LETTER THORN
- 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
- 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
- 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
- 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
- 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
- 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
- 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
- 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
- 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
- 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
- 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
- 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
- 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
- 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x20a7: 0x009e, # PESETA SIGN
- 0x2219: 0x00f9, # BULLET OPERATOR
- 0x221a: 0x00fb, # SQUARE ROOT
- 0x221e: 0x00ec, # INFINITY
- 0x2229: 0x00ef, # INTERSECTION
- 0x2248: 0x00f7, # ALMOST EQUAL TO
- 0x2261: 0x00f0, # IDENTICAL TO
- 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
- 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
- 0x2310: 0x00a9, # REVERSED NOT SIGN
- 0x2320: 0x00f4, # TOP HALF INTEGRAL
- 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x258c: 0x00dd, # LEFT HALF BLOCK
- 0x2590: 0x00de, # RIGHT HALF BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp862.py b/EasyTrans/Lib/encodings/cp862.py
deleted file mode 100644
index 3df22f99..00000000
--- a/EasyTrans/Lib/encodings/cp862.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP862.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp862',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x05d0, # HEBREW LETTER ALEF
- 0x0081: 0x05d1, # HEBREW LETTER BET
- 0x0082: 0x05d2, # HEBREW LETTER GIMEL
- 0x0083: 0x05d3, # HEBREW LETTER DALET
- 0x0084: 0x05d4, # HEBREW LETTER HE
- 0x0085: 0x05d5, # HEBREW LETTER VAV
- 0x0086: 0x05d6, # HEBREW LETTER ZAYIN
- 0x0087: 0x05d7, # HEBREW LETTER HET
- 0x0088: 0x05d8, # HEBREW LETTER TET
- 0x0089: 0x05d9, # HEBREW LETTER YOD
- 0x008a: 0x05da, # HEBREW LETTER FINAL KAF
- 0x008b: 0x05db, # HEBREW LETTER KAF
- 0x008c: 0x05dc, # HEBREW LETTER LAMED
- 0x008d: 0x05dd, # HEBREW LETTER FINAL MEM
- 0x008e: 0x05de, # HEBREW LETTER MEM
- 0x008f: 0x05df, # HEBREW LETTER FINAL NUN
- 0x0090: 0x05e0, # HEBREW LETTER NUN
- 0x0091: 0x05e1, # HEBREW LETTER SAMEKH
- 0x0092: 0x05e2, # HEBREW LETTER AYIN
- 0x0093: 0x05e3, # HEBREW LETTER FINAL PE
- 0x0094: 0x05e4, # HEBREW LETTER PE
- 0x0095: 0x05e5, # HEBREW LETTER FINAL TSADI
- 0x0096: 0x05e6, # HEBREW LETTER TSADI
- 0x0097: 0x05e7, # HEBREW LETTER QOF
- 0x0098: 0x05e8, # HEBREW LETTER RESH
- 0x0099: 0x05e9, # HEBREW LETTER SHIN
- 0x009a: 0x05ea, # HEBREW LETTER TAV
- 0x009b: 0x00a2, # CENT SIGN
- 0x009c: 0x00a3, # POUND SIGN
- 0x009d: 0x00a5, # YEN SIGN
- 0x009e: 0x20a7, # PESETA SIGN
- 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
- 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
- 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
- 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
- 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
- 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
- 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
- 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
- 0x00a8: 0x00bf, # INVERTED QUESTION MARK
- 0x00a9: 0x2310, # REVERSED NOT SIGN
- 0x00aa: 0x00ac, # NOT SIGN
- 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
- 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
- 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x258c, # LEFT HALF BLOCK
- 0x00de: 0x2590, # RIGHT HALF BLOCK
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
- 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S (GERMAN)
- 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
- 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
- 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
- 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
- 0x00e6: 0x00b5, # MICRO SIGN
- 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
- 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
- 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
- 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
- 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
- 0x00ec: 0x221e, # INFINITY
- 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
- 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
- 0x00ef: 0x2229, # INTERSECTION
- 0x00f0: 0x2261, # IDENTICAL TO
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
- 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
- 0x00f4: 0x2320, # TOP HALF INTEGRAL
- 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x2248, # ALMOST EQUAL TO
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x2219, # BULLET OPERATOR
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x221a, # SQUARE ROOT
- 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x00fd: 0x00b2, # SUPERSCRIPT TWO
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\u05d0' # 0x0080 -> HEBREW LETTER ALEF
- '\u05d1' # 0x0081 -> HEBREW LETTER BET
- '\u05d2' # 0x0082 -> HEBREW LETTER GIMEL
- '\u05d3' # 0x0083 -> HEBREW LETTER DALET
- '\u05d4' # 0x0084 -> HEBREW LETTER HE
- '\u05d5' # 0x0085 -> HEBREW LETTER VAV
- '\u05d6' # 0x0086 -> HEBREW LETTER ZAYIN
- '\u05d7' # 0x0087 -> HEBREW LETTER HET
- '\u05d8' # 0x0088 -> HEBREW LETTER TET
- '\u05d9' # 0x0089 -> HEBREW LETTER YOD
- '\u05da' # 0x008a -> HEBREW LETTER FINAL KAF
- '\u05db' # 0x008b -> HEBREW LETTER KAF
- '\u05dc' # 0x008c -> HEBREW LETTER LAMED
- '\u05dd' # 0x008d -> HEBREW LETTER FINAL MEM
- '\u05de' # 0x008e -> HEBREW LETTER MEM
- '\u05df' # 0x008f -> HEBREW LETTER FINAL NUN
- '\u05e0' # 0x0090 -> HEBREW LETTER NUN
- '\u05e1' # 0x0091 -> HEBREW LETTER SAMEKH
- '\u05e2' # 0x0092 -> HEBREW LETTER AYIN
- '\u05e3' # 0x0093 -> HEBREW LETTER FINAL PE
- '\u05e4' # 0x0094 -> HEBREW LETTER PE
- '\u05e5' # 0x0095 -> HEBREW LETTER FINAL TSADI
- '\u05e6' # 0x0096 -> HEBREW LETTER TSADI
- '\u05e7' # 0x0097 -> HEBREW LETTER QOF
- '\u05e8' # 0x0098 -> HEBREW LETTER RESH
- '\u05e9' # 0x0099 -> HEBREW LETTER SHIN
- '\u05ea' # 0x009a -> HEBREW LETTER TAV
- '\xa2' # 0x009b -> CENT SIGN
- '\xa3' # 0x009c -> POUND SIGN
- '\xa5' # 0x009d -> YEN SIGN
- '\u20a7' # 0x009e -> PESETA SIGN
- '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
- '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
- '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
- '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
- '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
- '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
- '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
- '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
- '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
- '\u2310' # 0x00a9 -> REVERSED NOT SIGN
- '\xac' # 0x00aa -> NOT SIGN
- '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
- '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
- '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u258c' # 0x00dd -> LEFT HALF BLOCK
- '\u2590' # 0x00de -> RIGHT HALF BLOCK
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
- '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S (GERMAN)
- '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
- '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
- '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
- '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
- '\xb5' # 0x00e6 -> MICRO SIGN
- '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
- '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
- '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
- '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
- '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
- '\u221e' # 0x00ec -> INFINITY
- '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
- '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
- '\u2229' # 0x00ef -> INTERSECTION
- '\u2261' # 0x00f0 -> IDENTICAL TO
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
- '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
- '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
- '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\u2248' # 0x00f7 -> ALMOST EQUAL TO
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\u2219' # 0x00f9 -> BULLET OPERATOR
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\u221a' # 0x00fb -> SQUARE ROOT
- '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
- '\xb2' # 0x00fd -> SUPERSCRIPT TWO
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
- 0x00a2: 0x009b, # CENT SIGN
- 0x00a3: 0x009c, # POUND SIGN
- 0x00a5: 0x009d, # YEN SIGN
- 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x00aa, # NOT SIGN
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x00fd, # SUPERSCRIPT TWO
- 0x00b5: 0x00e6, # MICRO SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
- 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
- 0x00bf: 0x00a8, # INVERTED QUESTION MARK
- 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S (GERMAN)
- 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
- 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
- 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
- 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
- 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
- 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
- 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
- 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
- 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
- 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
- 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
- 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
- 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
- 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
- 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
- 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
- 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
- 0x05d0: 0x0080, # HEBREW LETTER ALEF
- 0x05d1: 0x0081, # HEBREW LETTER BET
- 0x05d2: 0x0082, # HEBREW LETTER GIMEL
- 0x05d3: 0x0083, # HEBREW LETTER DALET
- 0x05d4: 0x0084, # HEBREW LETTER HE
- 0x05d5: 0x0085, # HEBREW LETTER VAV
- 0x05d6: 0x0086, # HEBREW LETTER ZAYIN
- 0x05d7: 0x0087, # HEBREW LETTER HET
- 0x05d8: 0x0088, # HEBREW LETTER TET
- 0x05d9: 0x0089, # HEBREW LETTER YOD
- 0x05da: 0x008a, # HEBREW LETTER FINAL KAF
- 0x05db: 0x008b, # HEBREW LETTER KAF
- 0x05dc: 0x008c, # HEBREW LETTER LAMED
- 0x05dd: 0x008d, # HEBREW LETTER FINAL MEM
- 0x05de: 0x008e, # HEBREW LETTER MEM
- 0x05df: 0x008f, # HEBREW LETTER FINAL NUN
- 0x05e0: 0x0090, # HEBREW LETTER NUN
- 0x05e1: 0x0091, # HEBREW LETTER SAMEKH
- 0x05e2: 0x0092, # HEBREW LETTER AYIN
- 0x05e3: 0x0093, # HEBREW LETTER FINAL PE
- 0x05e4: 0x0094, # HEBREW LETTER PE
- 0x05e5: 0x0095, # HEBREW LETTER FINAL TSADI
- 0x05e6: 0x0096, # HEBREW LETTER TSADI
- 0x05e7: 0x0097, # HEBREW LETTER QOF
- 0x05e8: 0x0098, # HEBREW LETTER RESH
- 0x05e9: 0x0099, # HEBREW LETTER SHIN
- 0x05ea: 0x009a, # HEBREW LETTER TAV
- 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x20a7: 0x009e, # PESETA SIGN
- 0x2219: 0x00f9, # BULLET OPERATOR
- 0x221a: 0x00fb, # SQUARE ROOT
- 0x221e: 0x00ec, # INFINITY
- 0x2229: 0x00ef, # INTERSECTION
- 0x2248: 0x00f7, # ALMOST EQUAL TO
- 0x2261: 0x00f0, # IDENTICAL TO
- 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
- 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
- 0x2310: 0x00a9, # REVERSED NOT SIGN
- 0x2320: 0x00f4, # TOP HALF INTEGRAL
- 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x258c: 0x00dd, # LEFT HALF BLOCK
- 0x2590: 0x00de, # RIGHT HALF BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp863.py b/EasyTrans/Lib/encodings/cp863.py
deleted file mode 100644
index 764180b6..00000000
--- a/EasyTrans/Lib/encodings/cp863.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP863.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp863',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
- 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x0084: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
- 0x0086: 0x00b6, # PILCROW SIGN
- 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
- 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
- 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x008d: 0x2017, # DOUBLE LOW LINE
- 0x008e: 0x00c0, # LATIN CAPITAL LETTER A WITH GRAVE
- 0x008f: 0x00a7, # SECTION SIGN
- 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x0091: 0x00c8, # LATIN CAPITAL LETTER E WITH GRAVE
- 0x0092: 0x00ca, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x0094: 0x00cb, # LATIN CAPITAL LETTER E WITH DIAERESIS
- 0x0095: 0x00cf, # LATIN CAPITAL LETTER I WITH DIAERESIS
- 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
- 0x0098: 0x00a4, # CURRENCY SIGN
- 0x0099: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x009b: 0x00a2, # CENT SIGN
- 0x009c: 0x00a3, # POUND SIGN
- 0x009d: 0x00d9, # LATIN CAPITAL LETTER U WITH GRAVE
- 0x009e: 0x00db, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
- 0x00a0: 0x00a6, # BROKEN BAR
- 0x00a1: 0x00b4, # ACUTE ACCENT
- 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
- 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
- 0x00a4: 0x00a8, # DIAERESIS
- 0x00a5: 0x00b8, # CEDILLA
- 0x00a6: 0x00b3, # SUPERSCRIPT THREE
- 0x00a7: 0x00af, # MACRON
- 0x00a8: 0x00ce, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- 0x00a9: 0x2310, # REVERSED NOT SIGN
- 0x00aa: 0x00ac, # NOT SIGN
- 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
- 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
- 0x00ad: 0x00be, # VULGAR FRACTION THREE QUARTERS
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x258c, # LEFT HALF BLOCK
- 0x00de: 0x2590, # RIGHT HALF BLOCK
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
- 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
- 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
- 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
- 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
- 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
- 0x00e6: 0x00b5, # MICRO SIGN
- 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
- 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
- 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
- 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
- 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
- 0x00ec: 0x221e, # INFINITY
- 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
- 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
- 0x00ef: 0x2229, # INTERSECTION
- 0x00f0: 0x2261, # IDENTICAL TO
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
- 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
- 0x00f4: 0x2320, # TOP HALF INTEGRAL
- 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x2248, # ALMOST EQUAL TO
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x2219, # BULLET OPERATOR
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x221a, # SQUARE ROOT
- 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x00fd: 0x00b2, # SUPERSCRIPT TWO
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
- '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xc2' # 0x0084 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
- '\xb6' # 0x0086 -> PILCROW SIGN
- '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
- '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\u2017' # 0x008d -> DOUBLE LOW LINE
- '\xc0' # 0x008e -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xa7' # 0x008f -> SECTION SIGN
- '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xc8' # 0x0091 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xca' # 0x0092 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xcb' # 0x0094 -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xcf' # 0x0095 -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
- '\xa4' # 0x0098 -> CURRENCY SIGN
- '\xd4' # 0x0099 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xa2' # 0x009b -> CENT SIGN
- '\xa3' # 0x009c -> POUND SIGN
- '\xd9' # 0x009d -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xdb' # 0x009e -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
- '\xa6' # 0x00a0 -> BROKEN BAR
- '\xb4' # 0x00a1 -> ACUTE ACCENT
- '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
- '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
- '\xa8' # 0x00a4 -> DIAERESIS
- '\xb8' # 0x00a5 -> CEDILLA
- '\xb3' # 0x00a6 -> SUPERSCRIPT THREE
- '\xaf' # 0x00a7 -> MACRON
- '\xce' # 0x00a8 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\u2310' # 0x00a9 -> REVERSED NOT SIGN
- '\xac' # 0x00aa -> NOT SIGN
- '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
- '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
- '\xbe' # 0x00ad -> VULGAR FRACTION THREE QUARTERS
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u258c' # 0x00dd -> LEFT HALF BLOCK
- '\u2590' # 0x00de -> RIGHT HALF BLOCK
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
- '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
- '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
- '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
- '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
- '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
- '\xb5' # 0x00e6 -> MICRO SIGN
- '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
- '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
- '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
- '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
- '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
- '\u221e' # 0x00ec -> INFINITY
- '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
- '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
- '\u2229' # 0x00ef -> INTERSECTION
- '\u2261' # 0x00f0 -> IDENTICAL TO
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
- '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
- '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
- '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\u2248' # 0x00f7 -> ALMOST EQUAL TO
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\u2219' # 0x00f9 -> BULLET OPERATOR
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\u221a' # 0x00fb -> SQUARE ROOT
- '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
- '\xb2' # 0x00fd -> SUPERSCRIPT TWO
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a2: 0x009b, # CENT SIGN
- 0x00a3: 0x009c, # POUND SIGN
- 0x00a4: 0x0098, # CURRENCY SIGN
- 0x00a6: 0x00a0, # BROKEN BAR
- 0x00a7: 0x008f, # SECTION SIGN
- 0x00a8: 0x00a4, # DIAERESIS
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x00aa, # NOT SIGN
- 0x00af: 0x00a7, # MACRON
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x00fd, # SUPERSCRIPT TWO
- 0x00b3: 0x00a6, # SUPERSCRIPT THREE
- 0x00b4: 0x00a1, # ACUTE ACCENT
- 0x00b5: 0x00e6, # MICRO SIGN
- 0x00b6: 0x0086, # PILCROW SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x00b8: 0x00a5, # CEDILLA
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
- 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
- 0x00be: 0x00ad, # VULGAR FRACTION THREE QUARTERS
- 0x00c0: 0x008e, # LATIN CAPITAL LETTER A WITH GRAVE
- 0x00c2: 0x0084, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x00c8: 0x0091, # LATIN CAPITAL LETTER E WITH GRAVE
- 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x00ca: 0x0092, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- 0x00cb: 0x0094, # LATIN CAPITAL LETTER E WITH DIAERESIS
- 0x00ce: 0x00a8, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- 0x00cf: 0x0095, # LATIN CAPITAL LETTER I WITH DIAERESIS
- 0x00d4: 0x0099, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- 0x00d9: 0x009d, # LATIN CAPITAL LETTER U WITH GRAVE
- 0x00db: 0x009e, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
- 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
- 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
- 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
- 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
- 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
- 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
- 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
- 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
- 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
- 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
- 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
- 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
- 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
- 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
- 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
- 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
- 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
- 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
- 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
- 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
- 0x2017: 0x008d, # DOUBLE LOW LINE
- 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x2219: 0x00f9, # BULLET OPERATOR
- 0x221a: 0x00fb, # SQUARE ROOT
- 0x221e: 0x00ec, # INFINITY
- 0x2229: 0x00ef, # INTERSECTION
- 0x2248: 0x00f7, # ALMOST EQUAL TO
- 0x2261: 0x00f0, # IDENTICAL TO
- 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
- 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
- 0x2310: 0x00a9, # REVERSED NOT SIGN
- 0x2320: 0x00f4, # TOP HALF INTEGRAL
- 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x258c: 0x00dd, # LEFT HALF BLOCK
- 0x2590: 0x00de, # RIGHT HALF BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp864.py b/EasyTrans/Lib/encodings/cp864.py
deleted file mode 100644
index 53df482d..00000000
--- a/EasyTrans/Lib/encodings/cp864.py
+++ /dev/null
@@ -1,690 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP864.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp864',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0025: 0x066a, # ARABIC PERCENT SIGN
- 0x0080: 0x00b0, # DEGREE SIGN
- 0x0081: 0x00b7, # MIDDLE DOT
- 0x0082: 0x2219, # BULLET OPERATOR
- 0x0083: 0x221a, # SQUARE ROOT
- 0x0084: 0x2592, # MEDIUM SHADE
- 0x0085: 0x2500, # FORMS LIGHT HORIZONTAL
- 0x0086: 0x2502, # FORMS LIGHT VERTICAL
- 0x0087: 0x253c, # FORMS LIGHT VERTICAL AND HORIZONTAL
- 0x0088: 0x2524, # FORMS LIGHT VERTICAL AND LEFT
- 0x0089: 0x252c, # FORMS LIGHT DOWN AND HORIZONTAL
- 0x008a: 0x251c, # FORMS LIGHT VERTICAL AND RIGHT
- 0x008b: 0x2534, # FORMS LIGHT UP AND HORIZONTAL
- 0x008c: 0x2510, # FORMS LIGHT DOWN AND LEFT
- 0x008d: 0x250c, # FORMS LIGHT DOWN AND RIGHT
- 0x008e: 0x2514, # FORMS LIGHT UP AND RIGHT
- 0x008f: 0x2518, # FORMS LIGHT UP AND LEFT
- 0x0090: 0x03b2, # GREEK SMALL BETA
- 0x0091: 0x221e, # INFINITY
- 0x0092: 0x03c6, # GREEK SMALL PHI
- 0x0093: 0x00b1, # PLUS-OR-MINUS SIGN
- 0x0094: 0x00bd, # FRACTION 1/2
- 0x0095: 0x00bc, # FRACTION 1/4
- 0x0096: 0x2248, # ALMOST EQUAL TO
- 0x0097: 0x00ab, # LEFT POINTING GUILLEMET
- 0x0098: 0x00bb, # RIGHT POINTING GUILLEMET
- 0x0099: 0xfef7, # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
- 0x009a: 0xfef8, # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
- 0x009b: None, # UNDEFINED
- 0x009c: None, # UNDEFINED
- 0x009d: 0xfefb, # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
- 0x009e: 0xfefc, # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
- 0x009f: None, # UNDEFINED
- 0x00a1: 0x00ad, # SOFT HYPHEN
- 0x00a2: 0xfe82, # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
- 0x00a5: 0xfe84, # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
- 0x00a6: None, # UNDEFINED
- 0x00a7: None, # UNDEFINED
- 0x00a8: 0xfe8e, # ARABIC LETTER ALEF FINAL FORM
- 0x00a9: 0xfe8f, # ARABIC LETTER BEH ISOLATED FORM
- 0x00aa: 0xfe95, # ARABIC LETTER TEH ISOLATED FORM
- 0x00ab: 0xfe99, # ARABIC LETTER THEH ISOLATED FORM
- 0x00ac: 0x060c, # ARABIC COMMA
- 0x00ad: 0xfe9d, # ARABIC LETTER JEEM ISOLATED FORM
- 0x00ae: 0xfea1, # ARABIC LETTER HAH ISOLATED FORM
- 0x00af: 0xfea5, # ARABIC LETTER KHAH ISOLATED FORM
- 0x00b0: 0x0660, # ARABIC-INDIC DIGIT ZERO
- 0x00b1: 0x0661, # ARABIC-INDIC DIGIT ONE
- 0x00b2: 0x0662, # ARABIC-INDIC DIGIT TWO
- 0x00b3: 0x0663, # ARABIC-INDIC DIGIT THREE
- 0x00b4: 0x0664, # ARABIC-INDIC DIGIT FOUR
- 0x00b5: 0x0665, # ARABIC-INDIC DIGIT FIVE
- 0x00b6: 0x0666, # ARABIC-INDIC DIGIT SIX
- 0x00b7: 0x0667, # ARABIC-INDIC DIGIT SEVEN
- 0x00b8: 0x0668, # ARABIC-INDIC DIGIT EIGHT
- 0x00b9: 0x0669, # ARABIC-INDIC DIGIT NINE
- 0x00ba: 0xfed1, # ARABIC LETTER FEH ISOLATED FORM
- 0x00bb: 0x061b, # ARABIC SEMICOLON
- 0x00bc: 0xfeb1, # ARABIC LETTER SEEN ISOLATED FORM
- 0x00bd: 0xfeb5, # ARABIC LETTER SHEEN ISOLATED FORM
- 0x00be: 0xfeb9, # ARABIC LETTER SAD ISOLATED FORM
- 0x00bf: 0x061f, # ARABIC QUESTION MARK
- 0x00c0: 0x00a2, # CENT SIGN
- 0x00c1: 0xfe80, # ARABIC LETTER HAMZA ISOLATED FORM
- 0x00c2: 0xfe81, # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
- 0x00c3: 0xfe83, # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
- 0x00c4: 0xfe85, # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
- 0x00c5: 0xfeca, # ARABIC LETTER AIN FINAL FORM
- 0x00c6: 0xfe8b, # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
- 0x00c7: 0xfe8d, # ARABIC LETTER ALEF ISOLATED FORM
- 0x00c8: 0xfe91, # ARABIC LETTER BEH INITIAL FORM
- 0x00c9: 0xfe93, # ARABIC LETTER TEH MARBUTA ISOLATED FORM
- 0x00ca: 0xfe97, # ARABIC LETTER TEH INITIAL FORM
- 0x00cb: 0xfe9b, # ARABIC LETTER THEH INITIAL FORM
- 0x00cc: 0xfe9f, # ARABIC LETTER JEEM INITIAL FORM
- 0x00cd: 0xfea3, # ARABIC LETTER HAH INITIAL FORM
- 0x00ce: 0xfea7, # ARABIC LETTER KHAH INITIAL FORM
- 0x00cf: 0xfea9, # ARABIC LETTER DAL ISOLATED FORM
- 0x00d0: 0xfeab, # ARABIC LETTER THAL ISOLATED FORM
- 0x00d1: 0xfead, # ARABIC LETTER REH ISOLATED FORM
- 0x00d2: 0xfeaf, # ARABIC LETTER ZAIN ISOLATED FORM
- 0x00d3: 0xfeb3, # ARABIC LETTER SEEN INITIAL FORM
- 0x00d4: 0xfeb7, # ARABIC LETTER SHEEN INITIAL FORM
- 0x00d5: 0xfebb, # ARABIC LETTER SAD INITIAL FORM
- 0x00d6: 0xfebf, # ARABIC LETTER DAD INITIAL FORM
- 0x00d7: 0xfec1, # ARABIC LETTER TAH ISOLATED FORM
- 0x00d8: 0xfec5, # ARABIC LETTER ZAH ISOLATED FORM
- 0x00d9: 0xfecb, # ARABIC LETTER AIN INITIAL FORM
- 0x00da: 0xfecf, # ARABIC LETTER GHAIN INITIAL FORM
- 0x00db: 0x00a6, # BROKEN VERTICAL BAR
- 0x00dc: 0x00ac, # NOT SIGN
- 0x00dd: 0x00f7, # DIVISION SIGN
- 0x00de: 0x00d7, # MULTIPLICATION SIGN
- 0x00df: 0xfec9, # ARABIC LETTER AIN ISOLATED FORM
- 0x00e0: 0x0640, # ARABIC TATWEEL
- 0x00e1: 0xfed3, # ARABIC LETTER FEH INITIAL FORM
- 0x00e2: 0xfed7, # ARABIC LETTER QAF INITIAL FORM
- 0x00e3: 0xfedb, # ARABIC LETTER KAF INITIAL FORM
- 0x00e4: 0xfedf, # ARABIC LETTER LAM INITIAL FORM
- 0x00e5: 0xfee3, # ARABIC LETTER MEEM INITIAL FORM
- 0x00e6: 0xfee7, # ARABIC LETTER NOON INITIAL FORM
- 0x00e7: 0xfeeb, # ARABIC LETTER HEH INITIAL FORM
- 0x00e8: 0xfeed, # ARABIC LETTER WAW ISOLATED FORM
- 0x00e9: 0xfeef, # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
- 0x00ea: 0xfef3, # ARABIC LETTER YEH INITIAL FORM
- 0x00eb: 0xfebd, # ARABIC LETTER DAD ISOLATED FORM
- 0x00ec: 0xfecc, # ARABIC LETTER AIN MEDIAL FORM
- 0x00ed: 0xfece, # ARABIC LETTER GHAIN FINAL FORM
- 0x00ee: 0xfecd, # ARABIC LETTER GHAIN ISOLATED FORM
- 0x00ef: 0xfee1, # ARABIC LETTER MEEM ISOLATED FORM
- 0x00f0: 0xfe7d, # ARABIC SHADDA MEDIAL FORM
- 0x00f1: 0x0651, # ARABIC SHADDAH
- 0x00f2: 0xfee5, # ARABIC LETTER NOON ISOLATED FORM
- 0x00f3: 0xfee9, # ARABIC LETTER HEH ISOLATED FORM
- 0x00f4: 0xfeec, # ARABIC LETTER HEH MEDIAL FORM
- 0x00f5: 0xfef0, # ARABIC LETTER ALEF MAKSURA FINAL FORM
- 0x00f6: 0xfef2, # ARABIC LETTER YEH FINAL FORM
- 0x00f7: 0xfed0, # ARABIC LETTER GHAIN MEDIAL FORM
- 0x00f8: 0xfed5, # ARABIC LETTER QAF ISOLATED FORM
- 0x00f9: 0xfef5, # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
- 0x00fa: 0xfef6, # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
- 0x00fb: 0xfedd, # ARABIC LETTER LAM ISOLATED FORM
- 0x00fc: 0xfed9, # ARABIC LETTER KAF ISOLATED FORM
- 0x00fd: 0xfef1, # ARABIC LETTER YEH ISOLATED FORM
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: None, # UNDEFINED
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '\u066a' # 0x0025 -> ARABIC PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\xb0' # 0x0080 -> DEGREE SIGN
- '\xb7' # 0x0081 -> MIDDLE DOT
- '\u2219' # 0x0082 -> BULLET OPERATOR
- '\u221a' # 0x0083 -> SQUARE ROOT
- '\u2592' # 0x0084 -> MEDIUM SHADE
- '\u2500' # 0x0085 -> FORMS LIGHT HORIZONTAL
- '\u2502' # 0x0086 -> FORMS LIGHT VERTICAL
- '\u253c' # 0x0087 -> FORMS LIGHT VERTICAL AND HORIZONTAL
- '\u2524' # 0x0088 -> FORMS LIGHT VERTICAL AND LEFT
- '\u252c' # 0x0089 -> FORMS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x008a -> FORMS LIGHT VERTICAL AND RIGHT
- '\u2534' # 0x008b -> FORMS LIGHT UP AND HORIZONTAL
- '\u2510' # 0x008c -> FORMS LIGHT DOWN AND LEFT
- '\u250c' # 0x008d -> FORMS LIGHT DOWN AND RIGHT
- '\u2514' # 0x008e -> FORMS LIGHT UP AND RIGHT
- '\u2518' # 0x008f -> FORMS LIGHT UP AND LEFT
- '\u03b2' # 0x0090 -> GREEK SMALL BETA
- '\u221e' # 0x0091 -> INFINITY
- '\u03c6' # 0x0092 -> GREEK SMALL PHI
- '\xb1' # 0x0093 -> PLUS-OR-MINUS SIGN
- '\xbd' # 0x0094 -> FRACTION 1/2
- '\xbc' # 0x0095 -> FRACTION 1/4
- '\u2248' # 0x0096 -> ALMOST EQUAL TO
- '\xab' # 0x0097 -> LEFT POINTING GUILLEMET
- '\xbb' # 0x0098 -> RIGHT POINTING GUILLEMET
- '\ufef7' # 0x0099 -> ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
- '\ufef8' # 0x009a -> ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
- '\ufffe' # 0x009b -> UNDEFINED
- '\ufffe' # 0x009c -> UNDEFINED
- '\ufefb' # 0x009d -> ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
- '\ufefc' # 0x009e -> ARABIC LIGATURE LAM WITH ALEF FINAL FORM
- '\ufffe' # 0x009f -> UNDEFINED
- '\xa0' # 0x00a0 -> NON-BREAKING SPACE
- '\xad' # 0x00a1 -> SOFT HYPHEN
- '\ufe82' # 0x00a2 -> ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
- '\xa3' # 0x00a3 -> POUND SIGN
- '\xa4' # 0x00a4 -> CURRENCY SIGN
- '\ufe84' # 0x00a5 -> ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
- '\ufffe' # 0x00a6 -> UNDEFINED
- '\ufffe' # 0x00a7 -> UNDEFINED
- '\ufe8e' # 0x00a8 -> ARABIC LETTER ALEF FINAL FORM
- '\ufe8f' # 0x00a9 -> ARABIC LETTER BEH ISOLATED FORM
- '\ufe95' # 0x00aa -> ARABIC LETTER TEH ISOLATED FORM
- '\ufe99' # 0x00ab -> ARABIC LETTER THEH ISOLATED FORM
- '\u060c' # 0x00ac -> ARABIC COMMA
- '\ufe9d' # 0x00ad -> ARABIC LETTER JEEM ISOLATED FORM
- '\ufea1' # 0x00ae -> ARABIC LETTER HAH ISOLATED FORM
- '\ufea5' # 0x00af -> ARABIC LETTER KHAH ISOLATED FORM
- '\u0660' # 0x00b0 -> ARABIC-INDIC DIGIT ZERO
- '\u0661' # 0x00b1 -> ARABIC-INDIC DIGIT ONE
- '\u0662' # 0x00b2 -> ARABIC-INDIC DIGIT TWO
- '\u0663' # 0x00b3 -> ARABIC-INDIC DIGIT THREE
- '\u0664' # 0x00b4 -> ARABIC-INDIC DIGIT FOUR
- '\u0665' # 0x00b5 -> ARABIC-INDIC DIGIT FIVE
- '\u0666' # 0x00b6 -> ARABIC-INDIC DIGIT SIX
- '\u0667' # 0x00b7 -> ARABIC-INDIC DIGIT SEVEN
- '\u0668' # 0x00b8 -> ARABIC-INDIC DIGIT EIGHT
- '\u0669' # 0x00b9 -> ARABIC-INDIC DIGIT NINE
- '\ufed1' # 0x00ba -> ARABIC LETTER FEH ISOLATED FORM
- '\u061b' # 0x00bb -> ARABIC SEMICOLON
- '\ufeb1' # 0x00bc -> ARABIC LETTER SEEN ISOLATED FORM
- '\ufeb5' # 0x00bd -> ARABIC LETTER SHEEN ISOLATED FORM
- '\ufeb9' # 0x00be -> ARABIC LETTER SAD ISOLATED FORM
- '\u061f' # 0x00bf -> ARABIC QUESTION MARK
- '\xa2' # 0x00c0 -> CENT SIGN
- '\ufe80' # 0x00c1 -> ARABIC LETTER HAMZA ISOLATED FORM
- '\ufe81' # 0x00c2 -> ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
- '\ufe83' # 0x00c3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
- '\ufe85' # 0x00c4 -> ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
- '\ufeca' # 0x00c5 -> ARABIC LETTER AIN FINAL FORM
- '\ufe8b' # 0x00c6 -> ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
- '\ufe8d' # 0x00c7 -> ARABIC LETTER ALEF ISOLATED FORM
- '\ufe91' # 0x00c8 -> ARABIC LETTER BEH INITIAL FORM
- '\ufe93' # 0x00c9 -> ARABIC LETTER TEH MARBUTA ISOLATED FORM
- '\ufe97' # 0x00ca -> ARABIC LETTER TEH INITIAL FORM
- '\ufe9b' # 0x00cb -> ARABIC LETTER THEH INITIAL FORM
- '\ufe9f' # 0x00cc -> ARABIC LETTER JEEM INITIAL FORM
- '\ufea3' # 0x00cd -> ARABIC LETTER HAH INITIAL FORM
- '\ufea7' # 0x00ce -> ARABIC LETTER KHAH INITIAL FORM
- '\ufea9' # 0x00cf -> ARABIC LETTER DAL ISOLATED FORM
- '\ufeab' # 0x00d0 -> ARABIC LETTER THAL ISOLATED FORM
- '\ufead' # 0x00d1 -> ARABIC LETTER REH ISOLATED FORM
- '\ufeaf' # 0x00d2 -> ARABIC LETTER ZAIN ISOLATED FORM
- '\ufeb3' # 0x00d3 -> ARABIC LETTER SEEN INITIAL FORM
- '\ufeb7' # 0x00d4 -> ARABIC LETTER SHEEN INITIAL FORM
- '\ufebb' # 0x00d5 -> ARABIC LETTER SAD INITIAL FORM
- '\ufebf' # 0x00d6 -> ARABIC LETTER DAD INITIAL FORM
- '\ufec1' # 0x00d7 -> ARABIC LETTER TAH ISOLATED FORM
- '\ufec5' # 0x00d8 -> ARABIC LETTER ZAH ISOLATED FORM
- '\ufecb' # 0x00d9 -> ARABIC LETTER AIN INITIAL FORM
- '\ufecf' # 0x00da -> ARABIC LETTER GHAIN INITIAL FORM
- '\xa6' # 0x00db -> BROKEN VERTICAL BAR
- '\xac' # 0x00dc -> NOT SIGN
- '\xf7' # 0x00dd -> DIVISION SIGN
- '\xd7' # 0x00de -> MULTIPLICATION SIGN
- '\ufec9' # 0x00df -> ARABIC LETTER AIN ISOLATED FORM
- '\u0640' # 0x00e0 -> ARABIC TATWEEL
- '\ufed3' # 0x00e1 -> ARABIC LETTER FEH INITIAL FORM
- '\ufed7' # 0x00e2 -> ARABIC LETTER QAF INITIAL FORM
- '\ufedb' # 0x00e3 -> ARABIC LETTER KAF INITIAL FORM
- '\ufedf' # 0x00e4 -> ARABIC LETTER LAM INITIAL FORM
- '\ufee3' # 0x00e5 -> ARABIC LETTER MEEM INITIAL FORM
- '\ufee7' # 0x00e6 -> ARABIC LETTER NOON INITIAL FORM
- '\ufeeb' # 0x00e7 -> ARABIC LETTER HEH INITIAL FORM
- '\ufeed' # 0x00e8 -> ARABIC LETTER WAW ISOLATED FORM
- '\ufeef' # 0x00e9 -> ARABIC LETTER ALEF MAKSURA ISOLATED FORM
- '\ufef3' # 0x00ea -> ARABIC LETTER YEH INITIAL FORM
- '\ufebd' # 0x00eb -> ARABIC LETTER DAD ISOLATED FORM
- '\ufecc' # 0x00ec -> ARABIC LETTER AIN MEDIAL FORM
- '\ufece' # 0x00ed -> ARABIC LETTER GHAIN FINAL FORM
- '\ufecd' # 0x00ee -> ARABIC LETTER GHAIN ISOLATED FORM
- '\ufee1' # 0x00ef -> ARABIC LETTER MEEM ISOLATED FORM
- '\ufe7d' # 0x00f0 -> ARABIC SHADDA MEDIAL FORM
- '\u0651' # 0x00f1 -> ARABIC SHADDAH
- '\ufee5' # 0x00f2 -> ARABIC LETTER NOON ISOLATED FORM
- '\ufee9' # 0x00f3 -> ARABIC LETTER HEH ISOLATED FORM
- '\ufeec' # 0x00f4 -> ARABIC LETTER HEH MEDIAL FORM
- '\ufef0' # 0x00f5 -> ARABIC LETTER ALEF MAKSURA FINAL FORM
- '\ufef2' # 0x00f6 -> ARABIC LETTER YEH FINAL FORM
- '\ufed0' # 0x00f7 -> ARABIC LETTER GHAIN MEDIAL FORM
- '\ufed5' # 0x00f8 -> ARABIC LETTER QAF ISOLATED FORM
- '\ufef5' # 0x00f9 -> ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
- '\ufef6' # 0x00fa -> ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
- '\ufedd' # 0x00fb -> ARABIC LETTER LAM ISOLATED FORM
- '\ufed9' # 0x00fc -> ARABIC LETTER KAF ISOLATED FORM
- '\ufef1' # 0x00fd -> ARABIC LETTER YEH ISOLATED FORM
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\ufffe' # 0x00ff -> UNDEFINED
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00a0, # NON-BREAKING SPACE
- 0x00a2: 0x00c0, # CENT SIGN
- 0x00a3: 0x00a3, # POUND SIGN
- 0x00a4: 0x00a4, # CURRENCY SIGN
- 0x00a6: 0x00db, # BROKEN VERTICAL BAR
- 0x00ab: 0x0097, # LEFT POINTING GUILLEMET
- 0x00ac: 0x00dc, # NOT SIGN
- 0x00ad: 0x00a1, # SOFT HYPHEN
- 0x00b0: 0x0080, # DEGREE SIGN
- 0x00b1: 0x0093, # PLUS-OR-MINUS SIGN
- 0x00b7: 0x0081, # MIDDLE DOT
- 0x00bb: 0x0098, # RIGHT POINTING GUILLEMET
- 0x00bc: 0x0095, # FRACTION 1/4
- 0x00bd: 0x0094, # FRACTION 1/2
- 0x00d7: 0x00de, # MULTIPLICATION SIGN
- 0x00f7: 0x00dd, # DIVISION SIGN
- 0x03b2: 0x0090, # GREEK SMALL BETA
- 0x03c6: 0x0092, # GREEK SMALL PHI
- 0x060c: 0x00ac, # ARABIC COMMA
- 0x061b: 0x00bb, # ARABIC SEMICOLON
- 0x061f: 0x00bf, # ARABIC QUESTION MARK
- 0x0640: 0x00e0, # ARABIC TATWEEL
- 0x0651: 0x00f1, # ARABIC SHADDAH
- 0x0660: 0x00b0, # ARABIC-INDIC DIGIT ZERO
- 0x0661: 0x00b1, # ARABIC-INDIC DIGIT ONE
- 0x0662: 0x00b2, # ARABIC-INDIC DIGIT TWO
- 0x0663: 0x00b3, # ARABIC-INDIC DIGIT THREE
- 0x0664: 0x00b4, # ARABIC-INDIC DIGIT FOUR
- 0x0665: 0x00b5, # ARABIC-INDIC DIGIT FIVE
- 0x0666: 0x00b6, # ARABIC-INDIC DIGIT SIX
- 0x0667: 0x00b7, # ARABIC-INDIC DIGIT SEVEN
- 0x0668: 0x00b8, # ARABIC-INDIC DIGIT EIGHT
- 0x0669: 0x00b9, # ARABIC-INDIC DIGIT NINE
- 0x066a: 0x0025, # ARABIC PERCENT SIGN
- 0x2219: 0x0082, # BULLET OPERATOR
- 0x221a: 0x0083, # SQUARE ROOT
- 0x221e: 0x0091, # INFINITY
- 0x2248: 0x0096, # ALMOST EQUAL TO
- 0x2500: 0x0085, # FORMS LIGHT HORIZONTAL
- 0x2502: 0x0086, # FORMS LIGHT VERTICAL
- 0x250c: 0x008d, # FORMS LIGHT DOWN AND RIGHT
- 0x2510: 0x008c, # FORMS LIGHT DOWN AND LEFT
- 0x2514: 0x008e, # FORMS LIGHT UP AND RIGHT
- 0x2518: 0x008f, # FORMS LIGHT UP AND LEFT
- 0x251c: 0x008a, # FORMS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x0088, # FORMS LIGHT VERTICAL AND LEFT
- 0x252c: 0x0089, # FORMS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x008b, # FORMS LIGHT UP AND HORIZONTAL
- 0x253c: 0x0087, # FORMS LIGHT VERTICAL AND HORIZONTAL
- 0x2592: 0x0084, # MEDIUM SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
- 0xfe7d: 0x00f0, # ARABIC SHADDA MEDIAL FORM
- 0xfe80: 0x00c1, # ARABIC LETTER HAMZA ISOLATED FORM
- 0xfe81: 0x00c2, # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
- 0xfe82: 0x00a2, # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
- 0xfe83: 0x00c3, # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
- 0xfe84: 0x00a5, # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
- 0xfe85: 0x00c4, # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
- 0xfe8b: 0x00c6, # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
- 0xfe8d: 0x00c7, # ARABIC LETTER ALEF ISOLATED FORM
- 0xfe8e: 0x00a8, # ARABIC LETTER ALEF FINAL FORM
- 0xfe8f: 0x00a9, # ARABIC LETTER BEH ISOLATED FORM
- 0xfe91: 0x00c8, # ARABIC LETTER BEH INITIAL FORM
- 0xfe93: 0x00c9, # ARABIC LETTER TEH MARBUTA ISOLATED FORM
- 0xfe95: 0x00aa, # ARABIC LETTER TEH ISOLATED FORM
- 0xfe97: 0x00ca, # ARABIC LETTER TEH INITIAL FORM
- 0xfe99: 0x00ab, # ARABIC LETTER THEH ISOLATED FORM
- 0xfe9b: 0x00cb, # ARABIC LETTER THEH INITIAL FORM
- 0xfe9d: 0x00ad, # ARABIC LETTER JEEM ISOLATED FORM
- 0xfe9f: 0x00cc, # ARABIC LETTER JEEM INITIAL FORM
- 0xfea1: 0x00ae, # ARABIC LETTER HAH ISOLATED FORM
- 0xfea3: 0x00cd, # ARABIC LETTER HAH INITIAL FORM
- 0xfea5: 0x00af, # ARABIC LETTER KHAH ISOLATED FORM
- 0xfea7: 0x00ce, # ARABIC LETTER KHAH INITIAL FORM
- 0xfea9: 0x00cf, # ARABIC LETTER DAL ISOLATED FORM
- 0xfeab: 0x00d0, # ARABIC LETTER THAL ISOLATED FORM
- 0xfead: 0x00d1, # ARABIC LETTER REH ISOLATED FORM
- 0xfeaf: 0x00d2, # ARABIC LETTER ZAIN ISOLATED FORM
- 0xfeb1: 0x00bc, # ARABIC LETTER SEEN ISOLATED FORM
- 0xfeb3: 0x00d3, # ARABIC LETTER SEEN INITIAL FORM
- 0xfeb5: 0x00bd, # ARABIC LETTER SHEEN ISOLATED FORM
- 0xfeb7: 0x00d4, # ARABIC LETTER SHEEN INITIAL FORM
- 0xfeb9: 0x00be, # ARABIC LETTER SAD ISOLATED FORM
- 0xfebb: 0x00d5, # ARABIC LETTER SAD INITIAL FORM
- 0xfebd: 0x00eb, # ARABIC LETTER DAD ISOLATED FORM
- 0xfebf: 0x00d6, # ARABIC LETTER DAD INITIAL FORM
- 0xfec1: 0x00d7, # ARABIC LETTER TAH ISOLATED FORM
- 0xfec5: 0x00d8, # ARABIC LETTER ZAH ISOLATED FORM
- 0xfec9: 0x00df, # ARABIC LETTER AIN ISOLATED FORM
- 0xfeca: 0x00c5, # ARABIC LETTER AIN FINAL FORM
- 0xfecb: 0x00d9, # ARABIC LETTER AIN INITIAL FORM
- 0xfecc: 0x00ec, # ARABIC LETTER AIN MEDIAL FORM
- 0xfecd: 0x00ee, # ARABIC LETTER GHAIN ISOLATED FORM
- 0xfece: 0x00ed, # ARABIC LETTER GHAIN FINAL FORM
- 0xfecf: 0x00da, # ARABIC LETTER GHAIN INITIAL FORM
- 0xfed0: 0x00f7, # ARABIC LETTER GHAIN MEDIAL FORM
- 0xfed1: 0x00ba, # ARABIC LETTER FEH ISOLATED FORM
- 0xfed3: 0x00e1, # ARABIC LETTER FEH INITIAL FORM
- 0xfed5: 0x00f8, # ARABIC LETTER QAF ISOLATED FORM
- 0xfed7: 0x00e2, # ARABIC LETTER QAF INITIAL FORM
- 0xfed9: 0x00fc, # ARABIC LETTER KAF ISOLATED FORM
- 0xfedb: 0x00e3, # ARABIC LETTER KAF INITIAL FORM
- 0xfedd: 0x00fb, # ARABIC LETTER LAM ISOLATED FORM
- 0xfedf: 0x00e4, # ARABIC LETTER LAM INITIAL FORM
- 0xfee1: 0x00ef, # ARABIC LETTER MEEM ISOLATED FORM
- 0xfee3: 0x00e5, # ARABIC LETTER MEEM INITIAL FORM
- 0xfee5: 0x00f2, # ARABIC LETTER NOON ISOLATED FORM
- 0xfee7: 0x00e6, # ARABIC LETTER NOON INITIAL FORM
- 0xfee9: 0x00f3, # ARABIC LETTER HEH ISOLATED FORM
- 0xfeeb: 0x00e7, # ARABIC LETTER HEH INITIAL FORM
- 0xfeec: 0x00f4, # ARABIC LETTER HEH MEDIAL FORM
- 0xfeed: 0x00e8, # ARABIC LETTER WAW ISOLATED FORM
- 0xfeef: 0x00e9, # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
- 0xfef0: 0x00f5, # ARABIC LETTER ALEF MAKSURA FINAL FORM
- 0xfef1: 0x00fd, # ARABIC LETTER YEH ISOLATED FORM
- 0xfef2: 0x00f6, # ARABIC LETTER YEH FINAL FORM
- 0xfef3: 0x00ea, # ARABIC LETTER YEH INITIAL FORM
- 0xfef5: 0x00f9, # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
- 0xfef6: 0x00fa, # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
- 0xfef7: 0x0099, # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
- 0xfef8: 0x009a, # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
- 0xfefb: 0x009d, # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
- 0xfefc: 0x009e, # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-}
diff --git a/EasyTrans/Lib/encodings/cp865.py b/EasyTrans/Lib/encodings/cp865.py
deleted file mode 100644
index 6726cf3f..00000000
--- a/EasyTrans/Lib/encodings/cp865.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP865.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp865',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
- 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
- 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
- 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
- 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x008d: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
- 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
- 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
- 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
- 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
- 0x0098: 0x00ff, # LATIN SMALL LETTER Y WITH DIAERESIS
- 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
- 0x009c: 0x00a3, # POUND SIGN
- 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
- 0x009e: 0x20a7, # PESETA SIGN
- 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
- 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
- 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
- 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
- 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
- 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
- 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
- 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
- 0x00a8: 0x00bf, # INVERTED QUESTION MARK
- 0x00a9: 0x2310, # REVERSED NOT SIGN
- 0x00aa: 0x00ac, # NOT SIGN
- 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
- 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
- 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00a4, # CURRENCY SIGN
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x258c, # LEFT HALF BLOCK
- 0x00de: 0x2590, # RIGHT HALF BLOCK
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
- 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
- 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
- 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
- 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
- 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
- 0x00e6: 0x00b5, # MICRO SIGN
- 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
- 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
- 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
- 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
- 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
- 0x00ec: 0x221e, # INFINITY
- 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
- 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
- 0x00ef: 0x2229, # INTERSECTION
- 0x00f0: 0x2261, # IDENTICAL TO
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
- 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
- 0x00f4: 0x2320, # TOP HALF INTEGRAL
- 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
- 0x00f6: 0x00f7, # DIVISION SIGN
- 0x00f7: 0x2248, # ALMOST EQUAL TO
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x2219, # BULLET OPERATOR
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x221a, # SQUARE ROOT
- 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x00fd: 0x00b2, # SUPERSCRIPT TWO
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
- '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
- '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xec' # 0x008d -> LATIN SMALL LETTER I WITH GRAVE
- '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
- '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
- '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
- '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
- '\xff' # 0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
- '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
- '\xa3' # 0x009c -> POUND SIGN
- '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
- '\u20a7' # 0x009e -> PESETA SIGN
- '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
- '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
- '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
- '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
- '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
- '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
- '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
- '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
- '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
- '\u2310' # 0x00a9 -> REVERSED NOT SIGN
- '\xac' # 0x00aa -> NOT SIGN
- '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
- '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
- '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xa4' # 0x00af -> CURRENCY SIGN
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u258c' # 0x00dd -> LEFT HALF BLOCK
- '\u2590' # 0x00de -> RIGHT HALF BLOCK
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
- '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
- '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
- '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
- '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
- '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
- '\xb5' # 0x00e6 -> MICRO SIGN
- '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
- '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
- '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
- '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
- '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
- '\u221e' # 0x00ec -> INFINITY
- '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
- '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
- '\u2229' # 0x00ef -> INTERSECTION
- '\u2261' # 0x00f0 -> IDENTICAL TO
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
- '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
- '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
- '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
- '\xf7' # 0x00f6 -> DIVISION SIGN
- '\u2248' # 0x00f7 -> ALMOST EQUAL TO
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\u2219' # 0x00f9 -> BULLET OPERATOR
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\u221a' # 0x00fb -> SQUARE ROOT
- '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
- '\xb2' # 0x00fd -> SUPERSCRIPT TWO
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
- 0x00a3: 0x009c, # POUND SIGN
- 0x00a4: 0x00af, # CURRENCY SIGN
- 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x00aa, # NOT SIGN
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x00fd, # SUPERSCRIPT TWO
- 0x00b5: 0x00e6, # MICRO SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
- 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
- 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
- 0x00bf: 0x00a8, # INVERTED QUESTION MARK
- 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
- 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
- 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
- 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
- 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
- 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
- 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
- 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
- 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
- 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
- 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
- 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
- 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
- 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
- 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
- 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
- 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
- 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
- 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
- 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
- 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
- 0x00ec: 0x008d, # LATIN SMALL LETTER I WITH GRAVE
- 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
- 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
- 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
- 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
- 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
- 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
- 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
- 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
- 0x00f7: 0x00f6, # DIVISION SIGN
- 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
- 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
- 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
- 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
- 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
- 0x00ff: 0x0098, # LATIN SMALL LETTER Y WITH DIAERESIS
- 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
- 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
- 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
- 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
- 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
- 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
- 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
- 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
- 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
- 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
- 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
- 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
- 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
- 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
- 0x20a7: 0x009e, # PESETA SIGN
- 0x2219: 0x00f9, # BULLET OPERATOR
- 0x221a: 0x00fb, # SQUARE ROOT
- 0x221e: 0x00ec, # INFINITY
- 0x2229: 0x00ef, # INTERSECTION
- 0x2248: 0x00f7, # ALMOST EQUAL TO
- 0x2261: 0x00f0, # IDENTICAL TO
- 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
- 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
- 0x2310: 0x00a9, # REVERSED NOT SIGN
- 0x2320: 0x00f4, # TOP HALF INTEGRAL
- 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x258c: 0x00dd, # LEFT HALF BLOCK
- 0x2590: 0x00de, # RIGHT HALF BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp866.py b/EasyTrans/Lib/encodings/cp866.py
deleted file mode 100644
index bec7ae39..00000000
--- a/EasyTrans/Lib/encodings/cp866.py
+++ /dev/null
@@ -1,698 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP866.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp866',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: 0x0410, # CYRILLIC CAPITAL LETTER A
- 0x0081: 0x0411, # CYRILLIC CAPITAL LETTER BE
- 0x0082: 0x0412, # CYRILLIC CAPITAL LETTER VE
- 0x0083: 0x0413, # CYRILLIC CAPITAL LETTER GHE
- 0x0084: 0x0414, # CYRILLIC CAPITAL LETTER DE
- 0x0085: 0x0415, # CYRILLIC CAPITAL LETTER IE
- 0x0086: 0x0416, # CYRILLIC CAPITAL LETTER ZHE
- 0x0087: 0x0417, # CYRILLIC CAPITAL LETTER ZE
- 0x0088: 0x0418, # CYRILLIC CAPITAL LETTER I
- 0x0089: 0x0419, # CYRILLIC CAPITAL LETTER SHORT I
- 0x008a: 0x041a, # CYRILLIC CAPITAL LETTER KA
- 0x008b: 0x041b, # CYRILLIC CAPITAL LETTER EL
- 0x008c: 0x041c, # CYRILLIC CAPITAL LETTER EM
- 0x008d: 0x041d, # CYRILLIC CAPITAL LETTER EN
- 0x008e: 0x041e, # CYRILLIC CAPITAL LETTER O
- 0x008f: 0x041f, # CYRILLIC CAPITAL LETTER PE
- 0x0090: 0x0420, # CYRILLIC CAPITAL LETTER ER
- 0x0091: 0x0421, # CYRILLIC CAPITAL LETTER ES
- 0x0092: 0x0422, # CYRILLIC CAPITAL LETTER TE
- 0x0093: 0x0423, # CYRILLIC CAPITAL LETTER U
- 0x0094: 0x0424, # CYRILLIC CAPITAL LETTER EF
- 0x0095: 0x0425, # CYRILLIC CAPITAL LETTER HA
- 0x0096: 0x0426, # CYRILLIC CAPITAL LETTER TSE
- 0x0097: 0x0427, # CYRILLIC CAPITAL LETTER CHE
- 0x0098: 0x0428, # CYRILLIC CAPITAL LETTER SHA
- 0x0099: 0x0429, # CYRILLIC CAPITAL LETTER SHCHA
- 0x009a: 0x042a, # CYRILLIC CAPITAL LETTER HARD SIGN
- 0x009b: 0x042b, # CYRILLIC CAPITAL LETTER YERU
- 0x009c: 0x042c, # CYRILLIC CAPITAL LETTER SOFT SIGN
- 0x009d: 0x042d, # CYRILLIC CAPITAL LETTER E
- 0x009e: 0x042e, # CYRILLIC CAPITAL LETTER YU
- 0x009f: 0x042f, # CYRILLIC CAPITAL LETTER YA
- 0x00a0: 0x0430, # CYRILLIC SMALL LETTER A
- 0x00a1: 0x0431, # CYRILLIC SMALL LETTER BE
- 0x00a2: 0x0432, # CYRILLIC SMALL LETTER VE
- 0x00a3: 0x0433, # CYRILLIC SMALL LETTER GHE
- 0x00a4: 0x0434, # CYRILLIC SMALL LETTER DE
- 0x00a5: 0x0435, # CYRILLIC SMALL LETTER IE
- 0x00a6: 0x0436, # CYRILLIC SMALL LETTER ZHE
- 0x00a7: 0x0437, # CYRILLIC SMALL LETTER ZE
- 0x00a8: 0x0438, # CYRILLIC SMALL LETTER I
- 0x00a9: 0x0439, # CYRILLIC SMALL LETTER SHORT I
- 0x00aa: 0x043a, # CYRILLIC SMALL LETTER KA
- 0x00ab: 0x043b, # CYRILLIC SMALL LETTER EL
- 0x00ac: 0x043c, # CYRILLIC SMALL LETTER EM
- 0x00ad: 0x043d, # CYRILLIC SMALL LETTER EN
- 0x00ae: 0x043e, # CYRILLIC SMALL LETTER O
- 0x00af: 0x043f, # CYRILLIC SMALL LETTER PE
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x258c, # LEFT HALF BLOCK
- 0x00de: 0x2590, # RIGHT HALF BLOCK
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x0440, # CYRILLIC SMALL LETTER ER
- 0x00e1: 0x0441, # CYRILLIC SMALL LETTER ES
- 0x00e2: 0x0442, # CYRILLIC SMALL LETTER TE
- 0x00e3: 0x0443, # CYRILLIC SMALL LETTER U
- 0x00e4: 0x0444, # CYRILLIC SMALL LETTER EF
- 0x00e5: 0x0445, # CYRILLIC SMALL LETTER HA
- 0x00e6: 0x0446, # CYRILLIC SMALL LETTER TSE
- 0x00e7: 0x0447, # CYRILLIC SMALL LETTER CHE
- 0x00e8: 0x0448, # CYRILLIC SMALL LETTER SHA
- 0x00e9: 0x0449, # CYRILLIC SMALL LETTER SHCHA
- 0x00ea: 0x044a, # CYRILLIC SMALL LETTER HARD SIGN
- 0x00eb: 0x044b, # CYRILLIC SMALL LETTER YERU
- 0x00ec: 0x044c, # CYRILLIC SMALL LETTER SOFT SIGN
- 0x00ed: 0x044d, # CYRILLIC SMALL LETTER E
- 0x00ee: 0x044e, # CYRILLIC SMALL LETTER YU
- 0x00ef: 0x044f, # CYRILLIC SMALL LETTER YA
- 0x00f0: 0x0401, # CYRILLIC CAPITAL LETTER IO
- 0x00f1: 0x0451, # CYRILLIC SMALL LETTER IO
- 0x00f2: 0x0404, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
- 0x00f3: 0x0454, # CYRILLIC SMALL LETTER UKRAINIAN IE
- 0x00f4: 0x0407, # CYRILLIC CAPITAL LETTER YI
- 0x00f5: 0x0457, # CYRILLIC SMALL LETTER YI
- 0x00f6: 0x040e, # CYRILLIC CAPITAL LETTER SHORT U
- 0x00f7: 0x045e, # CYRILLIC SMALL LETTER SHORT U
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x2219, # BULLET OPERATOR
- 0x00fa: 0x00b7, # MIDDLE DOT
- 0x00fb: 0x221a, # SQUARE ROOT
- 0x00fc: 0x2116, # NUMERO SIGN
- 0x00fd: 0x00a4, # CURRENCY SIGN
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\u0410' # 0x0080 -> CYRILLIC CAPITAL LETTER A
- '\u0411' # 0x0081 -> CYRILLIC CAPITAL LETTER BE
- '\u0412' # 0x0082 -> CYRILLIC CAPITAL LETTER VE
- '\u0413' # 0x0083 -> CYRILLIC CAPITAL LETTER GHE
- '\u0414' # 0x0084 -> CYRILLIC CAPITAL LETTER DE
- '\u0415' # 0x0085 -> CYRILLIC CAPITAL LETTER IE
- '\u0416' # 0x0086 -> CYRILLIC CAPITAL LETTER ZHE
- '\u0417' # 0x0087 -> CYRILLIC CAPITAL LETTER ZE
- '\u0418' # 0x0088 -> CYRILLIC CAPITAL LETTER I
- '\u0419' # 0x0089 -> CYRILLIC CAPITAL LETTER SHORT I
- '\u041a' # 0x008a -> CYRILLIC CAPITAL LETTER KA
- '\u041b' # 0x008b -> CYRILLIC CAPITAL LETTER EL
- '\u041c' # 0x008c -> CYRILLIC CAPITAL LETTER EM
- '\u041d' # 0x008d -> CYRILLIC CAPITAL LETTER EN
- '\u041e' # 0x008e -> CYRILLIC CAPITAL LETTER O
- '\u041f' # 0x008f -> CYRILLIC CAPITAL LETTER PE
- '\u0420' # 0x0090 -> CYRILLIC CAPITAL LETTER ER
- '\u0421' # 0x0091 -> CYRILLIC CAPITAL LETTER ES
- '\u0422' # 0x0092 -> CYRILLIC CAPITAL LETTER TE
- '\u0423' # 0x0093 -> CYRILLIC CAPITAL LETTER U
- '\u0424' # 0x0094 -> CYRILLIC CAPITAL LETTER EF
- '\u0425' # 0x0095 -> CYRILLIC CAPITAL LETTER HA
- '\u0426' # 0x0096 -> CYRILLIC CAPITAL LETTER TSE
- '\u0427' # 0x0097 -> CYRILLIC CAPITAL LETTER CHE
- '\u0428' # 0x0098 -> CYRILLIC CAPITAL LETTER SHA
- '\u0429' # 0x0099 -> CYRILLIC CAPITAL LETTER SHCHA
- '\u042a' # 0x009a -> CYRILLIC CAPITAL LETTER HARD SIGN
- '\u042b' # 0x009b -> CYRILLIC CAPITAL LETTER YERU
- '\u042c' # 0x009c -> CYRILLIC CAPITAL LETTER SOFT SIGN
- '\u042d' # 0x009d -> CYRILLIC CAPITAL LETTER E
- '\u042e' # 0x009e -> CYRILLIC CAPITAL LETTER YU
- '\u042f' # 0x009f -> CYRILLIC CAPITAL LETTER YA
- '\u0430' # 0x00a0 -> CYRILLIC SMALL LETTER A
- '\u0431' # 0x00a1 -> CYRILLIC SMALL LETTER BE
- '\u0432' # 0x00a2 -> CYRILLIC SMALL LETTER VE
- '\u0433' # 0x00a3 -> CYRILLIC SMALL LETTER GHE
- '\u0434' # 0x00a4 -> CYRILLIC SMALL LETTER DE
- '\u0435' # 0x00a5 -> CYRILLIC SMALL LETTER IE
- '\u0436' # 0x00a6 -> CYRILLIC SMALL LETTER ZHE
- '\u0437' # 0x00a7 -> CYRILLIC SMALL LETTER ZE
- '\u0438' # 0x00a8 -> CYRILLIC SMALL LETTER I
- '\u0439' # 0x00a9 -> CYRILLIC SMALL LETTER SHORT I
- '\u043a' # 0x00aa -> CYRILLIC SMALL LETTER KA
- '\u043b' # 0x00ab -> CYRILLIC SMALL LETTER EL
- '\u043c' # 0x00ac -> CYRILLIC SMALL LETTER EM
- '\u043d' # 0x00ad -> CYRILLIC SMALL LETTER EN
- '\u043e' # 0x00ae -> CYRILLIC SMALL LETTER O
- '\u043f' # 0x00af -> CYRILLIC SMALL LETTER PE
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u258c' # 0x00dd -> LEFT HALF BLOCK
- '\u2590' # 0x00de -> RIGHT HALF BLOCK
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\u0440' # 0x00e0 -> CYRILLIC SMALL LETTER ER
- '\u0441' # 0x00e1 -> CYRILLIC SMALL LETTER ES
- '\u0442' # 0x00e2 -> CYRILLIC SMALL LETTER TE
- '\u0443' # 0x00e3 -> CYRILLIC SMALL LETTER U
- '\u0444' # 0x00e4 -> CYRILLIC SMALL LETTER EF
- '\u0445' # 0x00e5 -> CYRILLIC SMALL LETTER HA
- '\u0446' # 0x00e6 -> CYRILLIC SMALL LETTER TSE
- '\u0447' # 0x00e7 -> CYRILLIC SMALL LETTER CHE
- '\u0448' # 0x00e8 -> CYRILLIC SMALL LETTER SHA
- '\u0449' # 0x00e9 -> CYRILLIC SMALL LETTER SHCHA
- '\u044a' # 0x00ea -> CYRILLIC SMALL LETTER HARD SIGN
- '\u044b' # 0x00eb -> CYRILLIC SMALL LETTER YERU
- '\u044c' # 0x00ec -> CYRILLIC SMALL LETTER SOFT SIGN
- '\u044d' # 0x00ed -> CYRILLIC SMALL LETTER E
- '\u044e' # 0x00ee -> CYRILLIC SMALL LETTER YU
- '\u044f' # 0x00ef -> CYRILLIC SMALL LETTER YA
- '\u0401' # 0x00f0 -> CYRILLIC CAPITAL LETTER IO
- '\u0451' # 0x00f1 -> CYRILLIC SMALL LETTER IO
- '\u0404' # 0x00f2 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
- '\u0454' # 0x00f3 -> CYRILLIC SMALL LETTER UKRAINIAN IE
- '\u0407' # 0x00f4 -> CYRILLIC CAPITAL LETTER YI
- '\u0457' # 0x00f5 -> CYRILLIC SMALL LETTER YI
- '\u040e' # 0x00f6 -> CYRILLIC CAPITAL LETTER SHORT U
- '\u045e' # 0x00f7 -> CYRILLIC SMALL LETTER SHORT U
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\u2219' # 0x00f9 -> BULLET OPERATOR
- '\xb7' # 0x00fa -> MIDDLE DOT
- '\u221a' # 0x00fb -> SQUARE ROOT
- '\u2116' # 0x00fc -> NUMERO SIGN
- '\xa4' # 0x00fd -> CURRENCY SIGN
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a4: 0x00fd, # CURRENCY SIGN
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b7: 0x00fa, # MIDDLE DOT
- 0x0401: 0x00f0, # CYRILLIC CAPITAL LETTER IO
- 0x0404: 0x00f2, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
- 0x0407: 0x00f4, # CYRILLIC CAPITAL LETTER YI
- 0x040e: 0x00f6, # CYRILLIC CAPITAL LETTER SHORT U
- 0x0410: 0x0080, # CYRILLIC CAPITAL LETTER A
- 0x0411: 0x0081, # CYRILLIC CAPITAL LETTER BE
- 0x0412: 0x0082, # CYRILLIC CAPITAL LETTER VE
- 0x0413: 0x0083, # CYRILLIC CAPITAL LETTER GHE
- 0x0414: 0x0084, # CYRILLIC CAPITAL LETTER DE
- 0x0415: 0x0085, # CYRILLIC CAPITAL LETTER IE
- 0x0416: 0x0086, # CYRILLIC CAPITAL LETTER ZHE
- 0x0417: 0x0087, # CYRILLIC CAPITAL LETTER ZE
- 0x0418: 0x0088, # CYRILLIC CAPITAL LETTER I
- 0x0419: 0x0089, # CYRILLIC CAPITAL LETTER SHORT I
- 0x041a: 0x008a, # CYRILLIC CAPITAL LETTER KA
- 0x041b: 0x008b, # CYRILLIC CAPITAL LETTER EL
- 0x041c: 0x008c, # CYRILLIC CAPITAL LETTER EM
- 0x041d: 0x008d, # CYRILLIC CAPITAL LETTER EN
- 0x041e: 0x008e, # CYRILLIC CAPITAL LETTER O
- 0x041f: 0x008f, # CYRILLIC CAPITAL LETTER PE
- 0x0420: 0x0090, # CYRILLIC CAPITAL LETTER ER
- 0x0421: 0x0091, # CYRILLIC CAPITAL LETTER ES
- 0x0422: 0x0092, # CYRILLIC CAPITAL LETTER TE
- 0x0423: 0x0093, # CYRILLIC CAPITAL LETTER U
- 0x0424: 0x0094, # CYRILLIC CAPITAL LETTER EF
- 0x0425: 0x0095, # CYRILLIC CAPITAL LETTER HA
- 0x0426: 0x0096, # CYRILLIC CAPITAL LETTER TSE
- 0x0427: 0x0097, # CYRILLIC CAPITAL LETTER CHE
- 0x0428: 0x0098, # CYRILLIC CAPITAL LETTER SHA
- 0x0429: 0x0099, # CYRILLIC CAPITAL LETTER SHCHA
- 0x042a: 0x009a, # CYRILLIC CAPITAL LETTER HARD SIGN
- 0x042b: 0x009b, # CYRILLIC CAPITAL LETTER YERU
- 0x042c: 0x009c, # CYRILLIC CAPITAL LETTER SOFT SIGN
- 0x042d: 0x009d, # CYRILLIC CAPITAL LETTER E
- 0x042e: 0x009e, # CYRILLIC CAPITAL LETTER YU
- 0x042f: 0x009f, # CYRILLIC CAPITAL LETTER YA
- 0x0430: 0x00a0, # CYRILLIC SMALL LETTER A
- 0x0431: 0x00a1, # CYRILLIC SMALL LETTER BE
- 0x0432: 0x00a2, # CYRILLIC SMALL LETTER VE
- 0x0433: 0x00a3, # CYRILLIC SMALL LETTER GHE
- 0x0434: 0x00a4, # CYRILLIC SMALL LETTER DE
- 0x0435: 0x00a5, # CYRILLIC SMALL LETTER IE
- 0x0436: 0x00a6, # CYRILLIC SMALL LETTER ZHE
- 0x0437: 0x00a7, # CYRILLIC SMALL LETTER ZE
- 0x0438: 0x00a8, # CYRILLIC SMALL LETTER I
- 0x0439: 0x00a9, # CYRILLIC SMALL LETTER SHORT I
- 0x043a: 0x00aa, # CYRILLIC SMALL LETTER KA
- 0x043b: 0x00ab, # CYRILLIC SMALL LETTER EL
- 0x043c: 0x00ac, # CYRILLIC SMALL LETTER EM
- 0x043d: 0x00ad, # CYRILLIC SMALL LETTER EN
- 0x043e: 0x00ae, # CYRILLIC SMALL LETTER O
- 0x043f: 0x00af, # CYRILLIC SMALL LETTER PE
- 0x0440: 0x00e0, # CYRILLIC SMALL LETTER ER
- 0x0441: 0x00e1, # CYRILLIC SMALL LETTER ES
- 0x0442: 0x00e2, # CYRILLIC SMALL LETTER TE
- 0x0443: 0x00e3, # CYRILLIC SMALL LETTER U
- 0x0444: 0x00e4, # CYRILLIC SMALL LETTER EF
- 0x0445: 0x00e5, # CYRILLIC SMALL LETTER HA
- 0x0446: 0x00e6, # CYRILLIC SMALL LETTER TSE
- 0x0447: 0x00e7, # CYRILLIC SMALL LETTER CHE
- 0x0448: 0x00e8, # CYRILLIC SMALL LETTER SHA
- 0x0449: 0x00e9, # CYRILLIC SMALL LETTER SHCHA
- 0x044a: 0x00ea, # CYRILLIC SMALL LETTER HARD SIGN
- 0x044b: 0x00eb, # CYRILLIC SMALL LETTER YERU
- 0x044c: 0x00ec, # CYRILLIC SMALL LETTER SOFT SIGN
- 0x044d: 0x00ed, # CYRILLIC SMALL LETTER E
- 0x044e: 0x00ee, # CYRILLIC SMALL LETTER YU
- 0x044f: 0x00ef, # CYRILLIC SMALL LETTER YA
- 0x0451: 0x00f1, # CYRILLIC SMALL LETTER IO
- 0x0454: 0x00f3, # CYRILLIC SMALL LETTER UKRAINIAN IE
- 0x0457: 0x00f5, # CYRILLIC SMALL LETTER YI
- 0x045e: 0x00f7, # CYRILLIC SMALL LETTER SHORT U
- 0x2116: 0x00fc, # NUMERO SIGN
- 0x2219: 0x00f9, # BULLET OPERATOR
- 0x221a: 0x00fb, # SQUARE ROOT
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x258c: 0x00dd, # LEFT HALF BLOCK
- 0x2590: 0x00de, # RIGHT HALF BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp869.py b/EasyTrans/Lib/encodings/cp869.py
deleted file mode 100644
index 8d8a29b1..00000000
--- a/EasyTrans/Lib/encodings/cp869.py
+++ /dev/null
@@ -1,689 +0,0 @@
-""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP869.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_map)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_map)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp869',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-### Decoding Map
-
-decoding_map = codecs.make_identity_dict(range(256))
-decoding_map.update({
- 0x0080: None, # UNDEFINED
- 0x0081: None, # UNDEFINED
- 0x0082: None, # UNDEFINED
- 0x0083: None, # UNDEFINED
- 0x0084: None, # UNDEFINED
- 0x0085: None, # UNDEFINED
- 0x0086: 0x0386, # GREEK CAPITAL LETTER ALPHA WITH TONOS
- 0x0087: None, # UNDEFINED
- 0x0088: 0x00b7, # MIDDLE DOT
- 0x0089: 0x00ac, # NOT SIGN
- 0x008a: 0x00a6, # BROKEN BAR
- 0x008b: 0x2018, # LEFT SINGLE QUOTATION MARK
- 0x008c: 0x2019, # RIGHT SINGLE QUOTATION MARK
- 0x008d: 0x0388, # GREEK CAPITAL LETTER EPSILON WITH TONOS
- 0x008e: 0x2015, # HORIZONTAL BAR
- 0x008f: 0x0389, # GREEK CAPITAL LETTER ETA WITH TONOS
- 0x0090: 0x038a, # GREEK CAPITAL LETTER IOTA WITH TONOS
- 0x0091: 0x03aa, # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
- 0x0092: 0x038c, # GREEK CAPITAL LETTER OMICRON WITH TONOS
- 0x0093: None, # UNDEFINED
- 0x0094: None, # UNDEFINED
- 0x0095: 0x038e, # GREEK CAPITAL LETTER UPSILON WITH TONOS
- 0x0096: 0x03ab, # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
- 0x0097: 0x00a9, # COPYRIGHT SIGN
- 0x0098: 0x038f, # GREEK CAPITAL LETTER OMEGA WITH TONOS
- 0x0099: 0x00b2, # SUPERSCRIPT TWO
- 0x009a: 0x00b3, # SUPERSCRIPT THREE
- 0x009b: 0x03ac, # GREEK SMALL LETTER ALPHA WITH TONOS
- 0x009c: 0x00a3, # POUND SIGN
- 0x009d: 0x03ad, # GREEK SMALL LETTER EPSILON WITH TONOS
- 0x009e: 0x03ae, # GREEK SMALL LETTER ETA WITH TONOS
- 0x009f: 0x03af, # GREEK SMALL LETTER IOTA WITH TONOS
- 0x00a0: 0x03ca, # GREEK SMALL LETTER IOTA WITH DIALYTIKA
- 0x00a1: 0x0390, # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
- 0x00a2: 0x03cc, # GREEK SMALL LETTER OMICRON WITH TONOS
- 0x00a3: 0x03cd, # GREEK SMALL LETTER UPSILON WITH TONOS
- 0x00a4: 0x0391, # GREEK CAPITAL LETTER ALPHA
- 0x00a5: 0x0392, # GREEK CAPITAL LETTER BETA
- 0x00a6: 0x0393, # GREEK CAPITAL LETTER GAMMA
- 0x00a7: 0x0394, # GREEK CAPITAL LETTER DELTA
- 0x00a8: 0x0395, # GREEK CAPITAL LETTER EPSILON
- 0x00a9: 0x0396, # GREEK CAPITAL LETTER ZETA
- 0x00aa: 0x0397, # GREEK CAPITAL LETTER ETA
- 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
- 0x00ac: 0x0398, # GREEK CAPITAL LETTER THETA
- 0x00ad: 0x0399, # GREEK CAPITAL LETTER IOTA
- 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00b0: 0x2591, # LIGHT SHADE
- 0x00b1: 0x2592, # MEDIUM SHADE
- 0x00b2: 0x2593, # DARK SHADE
- 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
- 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x00b5: 0x039a, # GREEK CAPITAL LETTER KAPPA
- 0x00b6: 0x039b, # GREEK CAPITAL LETTER LAMDA
- 0x00b7: 0x039c, # GREEK CAPITAL LETTER MU
- 0x00b8: 0x039d, # GREEK CAPITAL LETTER NU
- 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
- 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x00bd: 0x039e, # GREEK CAPITAL LETTER XI
- 0x00be: 0x039f, # GREEK CAPITAL LETTER OMICRON
- 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x00c6: 0x03a0, # GREEK CAPITAL LETTER PI
- 0x00c7: 0x03a1, # GREEK CAPITAL LETTER RHO
- 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x00cf: 0x03a3, # GREEK CAPITAL LETTER SIGMA
- 0x00d0: 0x03a4, # GREEK CAPITAL LETTER TAU
- 0x00d1: 0x03a5, # GREEK CAPITAL LETTER UPSILON
- 0x00d2: 0x03a6, # GREEK CAPITAL LETTER PHI
- 0x00d3: 0x03a7, # GREEK CAPITAL LETTER CHI
- 0x00d4: 0x03a8, # GREEK CAPITAL LETTER PSI
- 0x00d5: 0x03a9, # GREEK CAPITAL LETTER OMEGA
- 0x00d6: 0x03b1, # GREEK SMALL LETTER ALPHA
- 0x00d7: 0x03b2, # GREEK SMALL LETTER BETA
- 0x00d8: 0x03b3, # GREEK SMALL LETTER GAMMA
- 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x00db: 0x2588, # FULL BLOCK
- 0x00dc: 0x2584, # LOWER HALF BLOCK
- 0x00dd: 0x03b4, # GREEK SMALL LETTER DELTA
- 0x00de: 0x03b5, # GREEK SMALL LETTER EPSILON
- 0x00df: 0x2580, # UPPER HALF BLOCK
- 0x00e0: 0x03b6, # GREEK SMALL LETTER ZETA
- 0x00e1: 0x03b7, # GREEK SMALL LETTER ETA
- 0x00e2: 0x03b8, # GREEK SMALL LETTER THETA
- 0x00e3: 0x03b9, # GREEK SMALL LETTER IOTA
- 0x00e4: 0x03ba, # GREEK SMALL LETTER KAPPA
- 0x00e5: 0x03bb, # GREEK SMALL LETTER LAMDA
- 0x00e6: 0x03bc, # GREEK SMALL LETTER MU
- 0x00e7: 0x03bd, # GREEK SMALL LETTER NU
- 0x00e8: 0x03be, # GREEK SMALL LETTER XI
- 0x00e9: 0x03bf, # GREEK SMALL LETTER OMICRON
- 0x00ea: 0x03c0, # GREEK SMALL LETTER PI
- 0x00eb: 0x03c1, # GREEK SMALL LETTER RHO
- 0x00ec: 0x03c3, # GREEK SMALL LETTER SIGMA
- 0x00ed: 0x03c2, # GREEK SMALL LETTER FINAL SIGMA
- 0x00ee: 0x03c4, # GREEK SMALL LETTER TAU
- 0x00ef: 0x0384, # GREEK TONOS
- 0x00f0: 0x00ad, # SOFT HYPHEN
- 0x00f1: 0x00b1, # PLUS-MINUS SIGN
- 0x00f2: 0x03c5, # GREEK SMALL LETTER UPSILON
- 0x00f3: 0x03c6, # GREEK SMALL LETTER PHI
- 0x00f4: 0x03c7, # GREEK SMALL LETTER CHI
- 0x00f5: 0x00a7, # SECTION SIGN
- 0x00f6: 0x03c8, # GREEK SMALL LETTER PSI
- 0x00f7: 0x0385, # GREEK DIALYTIKA TONOS
- 0x00f8: 0x00b0, # DEGREE SIGN
- 0x00f9: 0x00a8, # DIAERESIS
- 0x00fa: 0x03c9, # GREEK SMALL LETTER OMEGA
- 0x00fb: 0x03cb, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
- 0x00fc: 0x03b0, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
- 0x00fd: 0x03ce, # GREEK SMALL LETTER OMEGA WITH TONOS
- 0x00fe: 0x25a0, # BLACK SQUARE
- 0x00ff: 0x00a0, # NO-BREAK SPACE
-})
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x0000 -> NULL
- '\x01' # 0x0001 -> START OF HEADING
- '\x02' # 0x0002 -> START OF TEXT
- '\x03' # 0x0003 -> END OF TEXT
- '\x04' # 0x0004 -> END OF TRANSMISSION
- '\x05' # 0x0005 -> ENQUIRY
- '\x06' # 0x0006 -> ACKNOWLEDGE
- '\x07' # 0x0007 -> BELL
- '\x08' # 0x0008 -> BACKSPACE
- '\t' # 0x0009 -> HORIZONTAL TABULATION
- '\n' # 0x000a -> LINE FEED
- '\x0b' # 0x000b -> VERTICAL TABULATION
- '\x0c' # 0x000c -> FORM FEED
- '\r' # 0x000d -> CARRIAGE RETURN
- '\x0e' # 0x000e -> SHIFT OUT
- '\x0f' # 0x000f -> SHIFT IN
- '\x10' # 0x0010 -> DATA LINK ESCAPE
- '\x11' # 0x0011 -> DEVICE CONTROL ONE
- '\x12' # 0x0012 -> DEVICE CONTROL TWO
- '\x13' # 0x0013 -> DEVICE CONTROL THREE
- '\x14' # 0x0014 -> DEVICE CONTROL FOUR
- '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x0016 -> SYNCHRONOUS IDLE
- '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x0018 -> CANCEL
- '\x19' # 0x0019 -> END OF MEDIUM
- '\x1a' # 0x001a -> SUBSTITUTE
- '\x1b' # 0x001b -> ESCAPE
- '\x1c' # 0x001c -> FILE SEPARATOR
- '\x1d' # 0x001d -> GROUP SEPARATOR
- '\x1e' # 0x001e -> RECORD SEPARATOR
- '\x1f' # 0x001f -> UNIT SEPARATOR
- ' ' # 0x0020 -> SPACE
- '!' # 0x0021 -> EXCLAMATION MARK
- '"' # 0x0022 -> QUOTATION MARK
- '#' # 0x0023 -> NUMBER SIGN
- '$' # 0x0024 -> DOLLAR SIGN
- '%' # 0x0025 -> PERCENT SIGN
- '&' # 0x0026 -> AMPERSAND
- "'" # 0x0027 -> APOSTROPHE
- '(' # 0x0028 -> LEFT PARENTHESIS
- ')' # 0x0029 -> RIGHT PARENTHESIS
- '*' # 0x002a -> ASTERISK
- '+' # 0x002b -> PLUS SIGN
- ',' # 0x002c -> COMMA
- '-' # 0x002d -> HYPHEN-MINUS
- '.' # 0x002e -> FULL STOP
- '/' # 0x002f -> SOLIDUS
- '0' # 0x0030 -> DIGIT ZERO
- '1' # 0x0031 -> DIGIT ONE
- '2' # 0x0032 -> DIGIT TWO
- '3' # 0x0033 -> DIGIT THREE
- '4' # 0x0034 -> DIGIT FOUR
- '5' # 0x0035 -> DIGIT FIVE
- '6' # 0x0036 -> DIGIT SIX
- '7' # 0x0037 -> DIGIT SEVEN
- '8' # 0x0038 -> DIGIT EIGHT
- '9' # 0x0039 -> DIGIT NINE
- ':' # 0x003a -> COLON
- ';' # 0x003b -> SEMICOLON
- '<' # 0x003c -> LESS-THAN SIGN
- '=' # 0x003d -> EQUALS SIGN
- '>' # 0x003e -> GREATER-THAN SIGN
- '?' # 0x003f -> QUESTION MARK
- '@' # 0x0040 -> COMMERCIAL AT
- 'A' # 0x0041 -> LATIN CAPITAL LETTER A
- 'B' # 0x0042 -> LATIN CAPITAL LETTER B
- 'C' # 0x0043 -> LATIN CAPITAL LETTER C
- 'D' # 0x0044 -> LATIN CAPITAL LETTER D
- 'E' # 0x0045 -> LATIN CAPITAL LETTER E
- 'F' # 0x0046 -> LATIN CAPITAL LETTER F
- 'G' # 0x0047 -> LATIN CAPITAL LETTER G
- 'H' # 0x0048 -> LATIN CAPITAL LETTER H
- 'I' # 0x0049 -> LATIN CAPITAL LETTER I
- 'J' # 0x004a -> LATIN CAPITAL LETTER J
- 'K' # 0x004b -> LATIN CAPITAL LETTER K
- 'L' # 0x004c -> LATIN CAPITAL LETTER L
- 'M' # 0x004d -> LATIN CAPITAL LETTER M
- 'N' # 0x004e -> LATIN CAPITAL LETTER N
- 'O' # 0x004f -> LATIN CAPITAL LETTER O
- 'P' # 0x0050 -> LATIN CAPITAL LETTER P
- 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
- 'R' # 0x0052 -> LATIN CAPITAL LETTER R
- 'S' # 0x0053 -> LATIN CAPITAL LETTER S
- 'T' # 0x0054 -> LATIN CAPITAL LETTER T
- 'U' # 0x0055 -> LATIN CAPITAL LETTER U
- 'V' # 0x0056 -> LATIN CAPITAL LETTER V
- 'W' # 0x0057 -> LATIN CAPITAL LETTER W
- 'X' # 0x0058 -> LATIN CAPITAL LETTER X
- 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
- '[' # 0x005b -> LEFT SQUARE BRACKET
- '\\' # 0x005c -> REVERSE SOLIDUS
- ']' # 0x005d -> RIGHT SQUARE BRACKET
- '^' # 0x005e -> CIRCUMFLEX ACCENT
- '_' # 0x005f -> LOW LINE
- '`' # 0x0060 -> GRAVE ACCENT
- 'a' # 0x0061 -> LATIN SMALL LETTER A
- 'b' # 0x0062 -> LATIN SMALL LETTER B
- 'c' # 0x0063 -> LATIN SMALL LETTER C
- 'd' # 0x0064 -> LATIN SMALL LETTER D
- 'e' # 0x0065 -> LATIN SMALL LETTER E
- 'f' # 0x0066 -> LATIN SMALL LETTER F
- 'g' # 0x0067 -> LATIN SMALL LETTER G
- 'h' # 0x0068 -> LATIN SMALL LETTER H
- 'i' # 0x0069 -> LATIN SMALL LETTER I
- 'j' # 0x006a -> LATIN SMALL LETTER J
- 'k' # 0x006b -> LATIN SMALL LETTER K
- 'l' # 0x006c -> LATIN SMALL LETTER L
- 'm' # 0x006d -> LATIN SMALL LETTER M
- 'n' # 0x006e -> LATIN SMALL LETTER N
- 'o' # 0x006f -> LATIN SMALL LETTER O
- 'p' # 0x0070 -> LATIN SMALL LETTER P
- 'q' # 0x0071 -> LATIN SMALL LETTER Q
- 'r' # 0x0072 -> LATIN SMALL LETTER R
- 's' # 0x0073 -> LATIN SMALL LETTER S
- 't' # 0x0074 -> LATIN SMALL LETTER T
- 'u' # 0x0075 -> LATIN SMALL LETTER U
- 'v' # 0x0076 -> LATIN SMALL LETTER V
- 'w' # 0x0077 -> LATIN SMALL LETTER W
- 'x' # 0x0078 -> LATIN SMALL LETTER X
- 'y' # 0x0079 -> LATIN SMALL LETTER Y
- 'z' # 0x007a -> LATIN SMALL LETTER Z
- '{' # 0x007b -> LEFT CURLY BRACKET
- '|' # 0x007c -> VERTICAL LINE
- '}' # 0x007d -> RIGHT CURLY BRACKET
- '~' # 0x007e -> TILDE
- '\x7f' # 0x007f -> DELETE
- '\ufffe' # 0x0080 -> UNDEFINED
- '\ufffe' # 0x0081 -> UNDEFINED
- '\ufffe' # 0x0082 -> UNDEFINED
- '\ufffe' # 0x0083 -> UNDEFINED
- '\ufffe' # 0x0084 -> UNDEFINED
- '\ufffe' # 0x0085 -> UNDEFINED
- '\u0386' # 0x0086 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
- '\ufffe' # 0x0087 -> UNDEFINED
- '\xb7' # 0x0088 -> MIDDLE DOT
- '\xac' # 0x0089 -> NOT SIGN
- '\xa6' # 0x008a -> BROKEN BAR
- '\u2018' # 0x008b -> LEFT SINGLE QUOTATION MARK
- '\u2019' # 0x008c -> RIGHT SINGLE QUOTATION MARK
- '\u0388' # 0x008d -> GREEK CAPITAL LETTER EPSILON WITH TONOS
- '\u2015' # 0x008e -> HORIZONTAL BAR
- '\u0389' # 0x008f -> GREEK CAPITAL LETTER ETA WITH TONOS
- '\u038a' # 0x0090 -> GREEK CAPITAL LETTER IOTA WITH TONOS
- '\u03aa' # 0x0091 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
- '\u038c' # 0x0092 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
- '\ufffe' # 0x0093 -> UNDEFINED
- '\ufffe' # 0x0094 -> UNDEFINED
- '\u038e' # 0x0095 -> GREEK CAPITAL LETTER UPSILON WITH TONOS
- '\u03ab' # 0x0096 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
- '\xa9' # 0x0097 -> COPYRIGHT SIGN
- '\u038f' # 0x0098 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
- '\xb2' # 0x0099 -> SUPERSCRIPT TWO
- '\xb3' # 0x009a -> SUPERSCRIPT THREE
- '\u03ac' # 0x009b -> GREEK SMALL LETTER ALPHA WITH TONOS
- '\xa3' # 0x009c -> POUND SIGN
- '\u03ad' # 0x009d -> GREEK SMALL LETTER EPSILON WITH TONOS
- '\u03ae' # 0x009e -> GREEK SMALL LETTER ETA WITH TONOS
- '\u03af' # 0x009f -> GREEK SMALL LETTER IOTA WITH TONOS
- '\u03ca' # 0x00a0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
- '\u0390' # 0x00a1 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
- '\u03cc' # 0x00a2 -> GREEK SMALL LETTER OMICRON WITH TONOS
- '\u03cd' # 0x00a3 -> GREEK SMALL LETTER UPSILON WITH TONOS
- '\u0391' # 0x00a4 -> GREEK CAPITAL LETTER ALPHA
- '\u0392' # 0x00a5 -> GREEK CAPITAL LETTER BETA
- '\u0393' # 0x00a6 -> GREEK CAPITAL LETTER GAMMA
- '\u0394' # 0x00a7 -> GREEK CAPITAL LETTER DELTA
- '\u0395' # 0x00a8 -> GREEK CAPITAL LETTER EPSILON
- '\u0396' # 0x00a9 -> GREEK CAPITAL LETTER ZETA
- '\u0397' # 0x00aa -> GREEK CAPITAL LETTER ETA
- '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
- '\u0398' # 0x00ac -> GREEK CAPITAL LETTER THETA
- '\u0399' # 0x00ad -> GREEK CAPITAL LETTER IOTA
- '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u2591' # 0x00b0 -> LIGHT SHADE
- '\u2592' # 0x00b1 -> MEDIUM SHADE
- '\u2593' # 0x00b2 -> DARK SHADE
- '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
- '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
- '\u039a' # 0x00b5 -> GREEK CAPITAL LETTER KAPPA
- '\u039b' # 0x00b6 -> GREEK CAPITAL LETTER LAMDA
- '\u039c' # 0x00b7 -> GREEK CAPITAL LETTER MU
- '\u039d' # 0x00b8 -> GREEK CAPITAL LETTER NU
- '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
- '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
- '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
- '\u039e' # 0x00bd -> GREEK CAPITAL LETTER XI
- '\u039f' # 0x00be -> GREEK CAPITAL LETTER OMICRON
- '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
- '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
- '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
- '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
- '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- '\u03a0' # 0x00c6 -> GREEK CAPITAL LETTER PI
- '\u03a1' # 0x00c7 -> GREEK CAPITAL LETTER RHO
- '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
- '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
- '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
- '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- '\u03a3' # 0x00cf -> GREEK CAPITAL LETTER SIGMA
- '\u03a4' # 0x00d0 -> GREEK CAPITAL LETTER TAU
- '\u03a5' # 0x00d1 -> GREEK CAPITAL LETTER UPSILON
- '\u03a6' # 0x00d2 -> GREEK CAPITAL LETTER PHI
- '\u03a7' # 0x00d3 -> GREEK CAPITAL LETTER CHI
- '\u03a8' # 0x00d4 -> GREEK CAPITAL LETTER PSI
- '\u03a9' # 0x00d5 -> GREEK CAPITAL LETTER OMEGA
- '\u03b1' # 0x00d6 -> GREEK SMALL LETTER ALPHA
- '\u03b2' # 0x00d7 -> GREEK SMALL LETTER BETA
- '\u03b3' # 0x00d8 -> GREEK SMALL LETTER GAMMA
- '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
- '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
- '\u2588' # 0x00db -> FULL BLOCK
- '\u2584' # 0x00dc -> LOWER HALF BLOCK
- '\u03b4' # 0x00dd -> GREEK SMALL LETTER DELTA
- '\u03b5' # 0x00de -> GREEK SMALL LETTER EPSILON
- '\u2580' # 0x00df -> UPPER HALF BLOCK
- '\u03b6' # 0x00e0 -> GREEK SMALL LETTER ZETA
- '\u03b7' # 0x00e1 -> GREEK SMALL LETTER ETA
- '\u03b8' # 0x00e2 -> GREEK SMALL LETTER THETA
- '\u03b9' # 0x00e3 -> GREEK SMALL LETTER IOTA
- '\u03ba' # 0x00e4 -> GREEK SMALL LETTER KAPPA
- '\u03bb' # 0x00e5 -> GREEK SMALL LETTER LAMDA
- '\u03bc' # 0x00e6 -> GREEK SMALL LETTER MU
- '\u03bd' # 0x00e7 -> GREEK SMALL LETTER NU
- '\u03be' # 0x00e8 -> GREEK SMALL LETTER XI
- '\u03bf' # 0x00e9 -> GREEK SMALL LETTER OMICRON
- '\u03c0' # 0x00ea -> GREEK SMALL LETTER PI
- '\u03c1' # 0x00eb -> GREEK SMALL LETTER RHO
- '\u03c3' # 0x00ec -> GREEK SMALL LETTER SIGMA
- '\u03c2' # 0x00ed -> GREEK SMALL LETTER FINAL SIGMA
- '\u03c4' # 0x00ee -> GREEK SMALL LETTER TAU
- '\u0384' # 0x00ef -> GREEK TONOS
- '\xad' # 0x00f0 -> SOFT HYPHEN
- '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
- '\u03c5' # 0x00f2 -> GREEK SMALL LETTER UPSILON
- '\u03c6' # 0x00f3 -> GREEK SMALL LETTER PHI
- '\u03c7' # 0x00f4 -> GREEK SMALL LETTER CHI
- '\xa7' # 0x00f5 -> SECTION SIGN
- '\u03c8' # 0x00f6 -> GREEK SMALL LETTER PSI
- '\u0385' # 0x00f7 -> GREEK DIALYTIKA TONOS
- '\xb0' # 0x00f8 -> DEGREE SIGN
- '\xa8' # 0x00f9 -> DIAERESIS
- '\u03c9' # 0x00fa -> GREEK SMALL LETTER OMEGA
- '\u03cb' # 0x00fb -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
- '\u03b0' # 0x00fc -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
- '\u03ce' # 0x00fd -> GREEK SMALL LETTER OMEGA WITH TONOS
- '\u25a0' # 0x00fe -> BLACK SQUARE
- '\xa0' # 0x00ff -> NO-BREAK SPACE
-)
-
-### Encoding Map
-
-encoding_map = {
- 0x0000: 0x0000, # NULL
- 0x0001: 0x0001, # START OF HEADING
- 0x0002: 0x0002, # START OF TEXT
- 0x0003: 0x0003, # END OF TEXT
- 0x0004: 0x0004, # END OF TRANSMISSION
- 0x0005: 0x0005, # ENQUIRY
- 0x0006: 0x0006, # ACKNOWLEDGE
- 0x0007: 0x0007, # BELL
- 0x0008: 0x0008, # BACKSPACE
- 0x0009: 0x0009, # HORIZONTAL TABULATION
- 0x000a: 0x000a, # LINE FEED
- 0x000b: 0x000b, # VERTICAL TABULATION
- 0x000c: 0x000c, # FORM FEED
- 0x000d: 0x000d, # CARRIAGE RETURN
- 0x000e: 0x000e, # SHIFT OUT
- 0x000f: 0x000f, # SHIFT IN
- 0x0010: 0x0010, # DATA LINK ESCAPE
- 0x0011: 0x0011, # DEVICE CONTROL ONE
- 0x0012: 0x0012, # DEVICE CONTROL TWO
- 0x0013: 0x0013, # DEVICE CONTROL THREE
- 0x0014: 0x0014, # DEVICE CONTROL FOUR
- 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
- 0x0016: 0x0016, # SYNCHRONOUS IDLE
- 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
- 0x0018: 0x0018, # CANCEL
- 0x0019: 0x0019, # END OF MEDIUM
- 0x001a: 0x001a, # SUBSTITUTE
- 0x001b: 0x001b, # ESCAPE
- 0x001c: 0x001c, # FILE SEPARATOR
- 0x001d: 0x001d, # GROUP SEPARATOR
- 0x001e: 0x001e, # RECORD SEPARATOR
- 0x001f: 0x001f, # UNIT SEPARATOR
- 0x0020: 0x0020, # SPACE
- 0x0021: 0x0021, # EXCLAMATION MARK
- 0x0022: 0x0022, # QUOTATION MARK
- 0x0023: 0x0023, # NUMBER SIGN
- 0x0024: 0x0024, # DOLLAR SIGN
- 0x0025: 0x0025, # PERCENT SIGN
- 0x0026: 0x0026, # AMPERSAND
- 0x0027: 0x0027, # APOSTROPHE
- 0x0028: 0x0028, # LEFT PARENTHESIS
- 0x0029: 0x0029, # RIGHT PARENTHESIS
- 0x002a: 0x002a, # ASTERISK
- 0x002b: 0x002b, # PLUS SIGN
- 0x002c: 0x002c, # COMMA
- 0x002d: 0x002d, # HYPHEN-MINUS
- 0x002e: 0x002e, # FULL STOP
- 0x002f: 0x002f, # SOLIDUS
- 0x0030: 0x0030, # DIGIT ZERO
- 0x0031: 0x0031, # DIGIT ONE
- 0x0032: 0x0032, # DIGIT TWO
- 0x0033: 0x0033, # DIGIT THREE
- 0x0034: 0x0034, # DIGIT FOUR
- 0x0035: 0x0035, # DIGIT FIVE
- 0x0036: 0x0036, # DIGIT SIX
- 0x0037: 0x0037, # DIGIT SEVEN
- 0x0038: 0x0038, # DIGIT EIGHT
- 0x0039: 0x0039, # DIGIT NINE
- 0x003a: 0x003a, # COLON
- 0x003b: 0x003b, # SEMICOLON
- 0x003c: 0x003c, # LESS-THAN SIGN
- 0x003d: 0x003d, # EQUALS SIGN
- 0x003e: 0x003e, # GREATER-THAN SIGN
- 0x003f: 0x003f, # QUESTION MARK
- 0x0040: 0x0040, # COMMERCIAL AT
- 0x0041: 0x0041, # LATIN CAPITAL LETTER A
- 0x0042: 0x0042, # LATIN CAPITAL LETTER B
- 0x0043: 0x0043, # LATIN CAPITAL LETTER C
- 0x0044: 0x0044, # LATIN CAPITAL LETTER D
- 0x0045: 0x0045, # LATIN CAPITAL LETTER E
- 0x0046: 0x0046, # LATIN CAPITAL LETTER F
- 0x0047: 0x0047, # LATIN CAPITAL LETTER G
- 0x0048: 0x0048, # LATIN CAPITAL LETTER H
- 0x0049: 0x0049, # LATIN CAPITAL LETTER I
- 0x004a: 0x004a, # LATIN CAPITAL LETTER J
- 0x004b: 0x004b, # LATIN CAPITAL LETTER K
- 0x004c: 0x004c, # LATIN CAPITAL LETTER L
- 0x004d: 0x004d, # LATIN CAPITAL LETTER M
- 0x004e: 0x004e, # LATIN CAPITAL LETTER N
- 0x004f: 0x004f, # LATIN CAPITAL LETTER O
- 0x0050: 0x0050, # LATIN CAPITAL LETTER P
- 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
- 0x0052: 0x0052, # LATIN CAPITAL LETTER R
- 0x0053: 0x0053, # LATIN CAPITAL LETTER S
- 0x0054: 0x0054, # LATIN CAPITAL LETTER T
- 0x0055: 0x0055, # LATIN CAPITAL LETTER U
- 0x0056: 0x0056, # LATIN CAPITAL LETTER V
- 0x0057: 0x0057, # LATIN CAPITAL LETTER W
- 0x0058: 0x0058, # LATIN CAPITAL LETTER X
- 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
- 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
- 0x005b: 0x005b, # LEFT SQUARE BRACKET
- 0x005c: 0x005c, # REVERSE SOLIDUS
- 0x005d: 0x005d, # RIGHT SQUARE BRACKET
- 0x005e: 0x005e, # CIRCUMFLEX ACCENT
- 0x005f: 0x005f, # LOW LINE
- 0x0060: 0x0060, # GRAVE ACCENT
- 0x0061: 0x0061, # LATIN SMALL LETTER A
- 0x0062: 0x0062, # LATIN SMALL LETTER B
- 0x0063: 0x0063, # LATIN SMALL LETTER C
- 0x0064: 0x0064, # LATIN SMALL LETTER D
- 0x0065: 0x0065, # LATIN SMALL LETTER E
- 0x0066: 0x0066, # LATIN SMALL LETTER F
- 0x0067: 0x0067, # LATIN SMALL LETTER G
- 0x0068: 0x0068, # LATIN SMALL LETTER H
- 0x0069: 0x0069, # LATIN SMALL LETTER I
- 0x006a: 0x006a, # LATIN SMALL LETTER J
- 0x006b: 0x006b, # LATIN SMALL LETTER K
- 0x006c: 0x006c, # LATIN SMALL LETTER L
- 0x006d: 0x006d, # LATIN SMALL LETTER M
- 0x006e: 0x006e, # LATIN SMALL LETTER N
- 0x006f: 0x006f, # LATIN SMALL LETTER O
- 0x0070: 0x0070, # LATIN SMALL LETTER P
- 0x0071: 0x0071, # LATIN SMALL LETTER Q
- 0x0072: 0x0072, # LATIN SMALL LETTER R
- 0x0073: 0x0073, # LATIN SMALL LETTER S
- 0x0074: 0x0074, # LATIN SMALL LETTER T
- 0x0075: 0x0075, # LATIN SMALL LETTER U
- 0x0076: 0x0076, # LATIN SMALL LETTER V
- 0x0077: 0x0077, # LATIN SMALL LETTER W
- 0x0078: 0x0078, # LATIN SMALL LETTER X
- 0x0079: 0x0079, # LATIN SMALL LETTER Y
- 0x007a: 0x007a, # LATIN SMALL LETTER Z
- 0x007b: 0x007b, # LEFT CURLY BRACKET
- 0x007c: 0x007c, # VERTICAL LINE
- 0x007d: 0x007d, # RIGHT CURLY BRACKET
- 0x007e: 0x007e, # TILDE
- 0x007f: 0x007f, # DELETE
- 0x00a0: 0x00ff, # NO-BREAK SPACE
- 0x00a3: 0x009c, # POUND SIGN
- 0x00a6: 0x008a, # BROKEN BAR
- 0x00a7: 0x00f5, # SECTION SIGN
- 0x00a8: 0x00f9, # DIAERESIS
- 0x00a9: 0x0097, # COPYRIGHT SIGN
- 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00ac: 0x0089, # NOT SIGN
- 0x00ad: 0x00f0, # SOFT HYPHEN
- 0x00b0: 0x00f8, # DEGREE SIGN
- 0x00b1: 0x00f1, # PLUS-MINUS SIGN
- 0x00b2: 0x0099, # SUPERSCRIPT TWO
- 0x00b3: 0x009a, # SUPERSCRIPT THREE
- 0x00b7: 0x0088, # MIDDLE DOT
- 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
- 0x0384: 0x00ef, # GREEK TONOS
- 0x0385: 0x00f7, # GREEK DIALYTIKA TONOS
- 0x0386: 0x0086, # GREEK CAPITAL LETTER ALPHA WITH TONOS
- 0x0388: 0x008d, # GREEK CAPITAL LETTER EPSILON WITH TONOS
- 0x0389: 0x008f, # GREEK CAPITAL LETTER ETA WITH TONOS
- 0x038a: 0x0090, # GREEK CAPITAL LETTER IOTA WITH TONOS
- 0x038c: 0x0092, # GREEK CAPITAL LETTER OMICRON WITH TONOS
- 0x038e: 0x0095, # GREEK CAPITAL LETTER UPSILON WITH TONOS
- 0x038f: 0x0098, # GREEK CAPITAL LETTER OMEGA WITH TONOS
- 0x0390: 0x00a1, # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
- 0x0391: 0x00a4, # GREEK CAPITAL LETTER ALPHA
- 0x0392: 0x00a5, # GREEK CAPITAL LETTER BETA
- 0x0393: 0x00a6, # GREEK CAPITAL LETTER GAMMA
- 0x0394: 0x00a7, # GREEK CAPITAL LETTER DELTA
- 0x0395: 0x00a8, # GREEK CAPITAL LETTER EPSILON
- 0x0396: 0x00a9, # GREEK CAPITAL LETTER ZETA
- 0x0397: 0x00aa, # GREEK CAPITAL LETTER ETA
- 0x0398: 0x00ac, # GREEK CAPITAL LETTER THETA
- 0x0399: 0x00ad, # GREEK CAPITAL LETTER IOTA
- 0x039a: 0x00b5, # GREEK CAPITAL LETTER KAPPA
- 0x039b: 0x00b6, # GREEK CAPITAL LETTER LAMDA
- 0x039c: 0x00b7, # GREEK CAPITAL LETTER MU
- 0x039d: 0x00b8, # GREEK CAPITAL LETTER NU
- 0x039e: 0x00bd, # GREEK CAPITAL LETTER XI
- 0x039f: 0x00be, # GREEK CAPITAL LETTER OMICRON
- 0x03a0: 0x00c6, # GREEK CAPITAL LETTER PI
- 0x03a1: 0x00c7, # GREEK CAPITAL LETTER RHO
- 0x03a3: 0x00cf, # GREEK CAPITAL LETTER SIGMA
- 0x03a4: 0x00d0, # GREEK CAPITAL LETTER TAU
- 0x03a5: 0x00d1, # GREEK CAPITAL LETTER UPSILON
- 0x03a6: 0x00d2, # GREEK CAPITAL LETTER PHI
- 0x03a7: 0x00d3, # GREEK CAPITAL LETTER CHI
- 0x03a8: 0x00d4, # GREEK CAPITAL LETTER PSI
- 0x03a9: 0x00d5, # GREEK CAPITAL LETTER OMEGA
- 0x03aa: 0x0091, # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
- 0x03ab: 0x0096, # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
- 0x03ac: 0x009b, # GREEK SMALL LETTER ALPHA WITH TONOS
- 0x03ad: 0x009d, # GREEK SMALL LETTER EPSILON WITH TONOS
- 0x03ae: 0x009e, # GREEK SMALL LETTER ETA WITH TONOS
- 0x03af: 0x009f, # GREEK SMALL LETTER IOTA WITH TONOS
- 0x03b0: 0x00fc, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
- 0x03b1: 0x00d6, # GREEK SMALL LETTER ALPHA
- 0x03b2: 0x00d7, # GREEK SMALL LETTER BETA
- 0x03b3: 0x00d8, # GREEK SMALL LETTER GAMMA
- 0x03b4: 0x00dd, # GREEK SMALL LETTER DELTA
- 0x03b5: 0x00de, # GREEK SMALL LETTER EPSILON
- 0x03b6: 0x00e0, # GREEK SMALL LETTER ZETA
- 0x03b7: 0x00e1, # GREEK SMALL LETTER ETA
- 0x03b8: 0x00e2, # GREEK SMALL LETTER THETA
- 0x03b9: 0x00e3, # GREEK SMALL LETTER IOTA
- 0x03ba: 0x00e4, # GREEK SMALL LETTER KAPPA
- 0x03bb: 0x00e5, # GREEK SMALL LETTER LAMDA
- 0x03bc: 0x00e6, # GREEK SMALL LETTER MU
- 0x03bd: 0x00e7, # GREEK SMALL LETTER NU
- 0x03be: 0x00e8, # GREEK SMALL LETTER XI
- 0x03bf: 0x00e9, # GREEK SMALL LETTER OMICRON
- 0x03c0: 0x00ea, # GREEK SMALL LETTER PI
- 0x03c1: 0x00eb, # GREEK SMALL LETTER RHO
- 0x03c2: 0x00ed, # GREEK SMALL LETTER FINAL SIGMA
- 0x03c3: 0x00ec, # GREEK SMALL LETTER SIGMA
- 0x03c4: 0x00ee, # GREEK SMALL LETTER TAU
- 0x03c5: 0x00f2, # GREEK SMALL LETTER UPSILON
- 0x03c6: 0x00f3, # GREEK SMALL LETTER PHI
- 0x03c7: 0x00f4, # GREEK SMALL LETTER CHI
- 0x03c8: 0x00f6, # GREEK SMALL LETTER PSI
- 0x03c9: 0x00fa, # GREEK SMALL LETTER OMEGA
- 0x03ca: 0x00a0, # GREEK SMALL LETTER IOTA WITH DIALYTIKA
- 0x03cb: 0x00fb, # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
- 0x03cc: 0x00a2, # GREEK SMALL LETTER OMICRON WITH TONOS
- 0x03cd: 0x00a3, # GREEK SMALL LETTER UPSILON WITH TONOS
- 0x03ce: 0x00fd, # GREEK SMALL LETTER OMEGA WITH TONOS
- 0x2015: 0x008e, # HORIZONTAL BAR
- 0x2018: 0x008b, # LEFT SINGLE QUOTATION MARK
- 0x2019: 0x008c, # RIGHT SINGLE QUOTATION MARK
- 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
- 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
- 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
- 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
- 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
- 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
- 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
- 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
- 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
- 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
- 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
- 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
- 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
- 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
- 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
- 0x2580: 0x00df, # UPPER HALF BLOCK
- 0x2584: 0x00dc, # LOWER HALF BLOCK
- 0x2588: 0x00db, # FULL BLOCK
- 0x2591: 0x00b0, # LIGHT SHADE
- 0x2592: 0x00b1, # MEDIUM SHADE
- 0x2593: 0x00b2, # DARK SHADE
- 0x25a0: 0x00fe, # BLACK SQUARE
-}
diff --git a/EasyTrans/Lib/encodings/cp874.py b/EasyTrans/Lib/encodings/cp874.py
deleted file mode 100644
index 59bfcbc9..00000000
--- a/EasyTrans/Lib/encodings/cp874.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp874 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP874.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp874',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\u20ac' # 0x80 -> EURO SIGN
- '\ufffe' # 0x81 -> UNDEFINED
- '\ufffe' # 0x82 -> UNDEFINED
- '\ufffe' # 0x83 -> UNDEFINED
- '\ufffe' # 0x84 -> UNDEFINED
- '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
- '\ufffe' # 0x86 -> UNDEFINED
- '\ufffe' # 0x87 -> UNDEFINED
- '\ufffe' # 0x88 -> UNDEFINED
- '\ufffe' # 0x89 -> UNDEFINED
- '\ufffe' # 0x8A -> UNDEFINED
- '\ufffe' # 0x8B -> UNDEFINED
- '\ufffe' # 0x8C -> UNDEFINED
- '\ufffe' # 0x8D -> UNDEFINED
- '\ufffe' # 0x8E -> UNDEFINED
- '\ufffe' # 0x8F -> UNDEFINED
- '\ufffe' # 0x90 -> UNDEFINED
- '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
- '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
- '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
- '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
- '\u2022' # 0x95 -> BULLET
- '\u2013' # 0x96 -> EN DASH
- '\u2014' # 0x97 -> EM DASH
- '\ufffe' # 0x98 -> UNDEFINED
- '\ufffe' # 0x99 -> UNDEFINED
- '\ufffe' # 0x9A -> UNDEFINED
- '\ufffe' # 0x9B -> UNDEFINED
- '\ufffe' # 0x9C -> UNDEFINED
- '\ufffe' # 0x9D -> UNDEFINED
- '\ufffe' # 0x9E -> UNDEFINED
- '\ufffe' # 0x9F -> UNDEFINED
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\u0e01' # 0xA1 -> THAI CHARACTER KO KAI
- '\u0e02' # 0xA2 -> THAI CHARACTER KHO KHAI
- '\u0e03' # 0xA3 -> THAI CHARACTER KHO KHUAT
- '\u0e04' # 0xA4 -> THAI CHARACTER KHO KHWAI
- '\u0e05' # 0xA5 -> THAI CHARACTER KHO KHON
- '\u0e06' # 0xA6 -> THAI CHARACTER KHO RAKHANG
- '\u0e07' # 0xA7 -> THAI CHARACTER NGO NGU
- '\u0e08' # 0xA8 -> THAI CHARACTER CHO CHAN
- '\u0e09' # 0xA9 -> THAI CHARACTER CHO CHING
- '\u0e0a' # 0xAA -> THAI CHARACTER CHO CHANG
- '\u0e0b' # 0xAB -> THAI CHARACTER SO SO
- '\u0e0c' # 0xAC -> THAI CHARACTER CHO CHOE
- '\u0e0d' # 0xAD -> THAI CHARACTER YO YING
- '\u0e0e' # 0xAE -> THAI CHARACTER DO CHADA
- '\u0e0f' # 0xAF -> THAI CHARACTER TO PATAK
- '\u0e10' # 0xB0 -> THAI CHARACTER THO THAN
- '\u0e11' # 0xB1 -> THAI CHARACTER THO NANGMONTHO
- '\u0e12' # 0xB2 -> THAI CHARACTER THO PHUTHAO
- '\u0e13' # 0xB3 -> THAI CHARACTER NO NEN
- '\u0e14' # 0xB4 -> THAI CHARACTER DO DEK
- '\u0e15' # 0xB5 -> THAI CHARACTER TO TAO
- '\u0e16' # 0xB6 -> THAI CHARACTER THO THUNG
- '\u0e17' # 0xB7 -> THAI CHARACTER THO THAHAN
- '\u0e18' # 0xB8 -> THAI CHARACTER THO THONG
- '\u0e19' # 0xB9 -> THAI CHARACTER NO NU
- '\u0e1a' # 0xBA -> THAI CHARACTER BO BAIMAI
- '\u0e1b' # 0xBB -> THAI CHARACTER PO PLA
- '\u0e1c' # 0xBC -> THAI CHARACTER PHO PHUNG
- '\u0e1d' # 0xBD -> THAI CHARACTER FO FA
- '\u0e1e' # 0xBE -> THAI CHARACTER PHO PHAN
- '\u0e1f' # 0xBF -> THAI CHARACTER FO FAN
- '\u0e20' # 0xC0 -> THAI CHARACTER PHO SAMPHAO
- '\u0e21' # 0xC1 -> THAI CHARACTER MO MA
- '\u0e22' # 0xC2 -> THAI CHARACTER YO YAK
- '\u0e23' # 0xC3 -> THAI CHARACTER RO RUA
- '\u0e24' # 0xC4 -> THAI CHARACTER RU
- '\u0e25' # 0xC5 -> THAI CHARACTER LO LING
- '\u0e26' # 0xC6 -> THAI CHARACTER LU
- '\u0e27' # 0xC7 -> THAI CHARACTER WO WAEN
- '\u0e28' # 0xC8 -> THAI CHARACTER SO SALA
- '\u0e29' # 0xC9 -> THAI CHARACTER SO RUSI
- '\u0e2a' # 0xCA -> THAI CHARACTER SO SUA
- '\u0e2b' # 0xCB -> THAI CHARACTER HO HIP
- '\u0e2c' # 0xCC -> THAI CHARACTER LO CHULA
- '\u0e2d' # 0xCD -> THAI CHARACTER O ANG
- '\u0e2e' # 0xCE -> THAI CHARACTER HO NOKHUK
- '\u0e2f' # 0xCF -> THAI CHARACTER PAIYANNOI
- '\u0e30' # 0xD0 -> THAI CHARACTER SARA A
- '\u0e31' # 0xD1 -> THAI CHARACTER MAI HAN-AKAT
- '\u0e32' # 0xD2 -> THAI CHARACTER SARA AA
- '\u0e33' # 0xD3 -> THAI CHARACTER SARA AM
- '\u0e34' # 0xD4 -> THAI CHARACTER SARA I
- '\u0e35' # 0xD5 -> THAI CHARACTER SARA II
- '\u0e36' # 0xD6 -> THAI CHARACTER SARA UE
- '\u0e37' # 0xD7 -> THAI CHARACTER SARA UEE
- '\u0e38' # 0xD8 -> THAI CHARACTER SARA U
- '\u0e39' # 0xD9 -> THAI CHARACTER SARA UU
- '\u0e3a' # 0xDA -> THAI CHARACTER PHINTHU
- '\ufffe' # 0xDB -> UNDEFINED
- '\ufffe' # 0xDC -> UNDEFINED
- '\ufffe' # 0xDD -> UNDEFINED
- '\ufffe' # 0xDE -> UNDEFINED
- '\u0e3f' # 0xDF -> THAI CURRENCY SYMBOL BAHT
- '\u0e40' # 0xE0 -> THAI CHARACTER SARA E
- '\u0e41' # 0xE1 -> THAI CHARACTER SARA AE
- '\u0e42' # 0xE2 -> THAI CHARACTER SARA O
- '\u0e43' # 0xE3 -> THAI CHARACTER SARA AI MAIMUAN
- '\u0e44' # 0xE4 -> THAI CHARACTER SARA AI MAIMALAI
- '\u0e45' # 0xE5 -> THAI CHARACTER LAKKHANGYAO
- '\u0e46' # 0xE6 -> THAI CHARACTER MAIYAMOK
- '\u0e47' # 0xE7 -> THAI CHARACTER MAITAIKHU
- '\u0e48' # 0xE8 -> THAI CHARACTER MAI EK
- '\u0e49' # 0xE9 -> THAI CHARACTER MAI THO
- '\u0e4a' # 0xEA -> THAI CHARACTER MAI TRI
- '\u0e4b' # 0xEB -> THAI CHARACTER MAI CHATTAWA
- '\u0e4c' # 0xEC -> THAI CHARACTER THANTHAKHAT
- '\u0e4d' # 0xED -> THAI CHARACTER NIKHAHIT
- '\u0e4e' # 0xEE -> THAI CHARACTER YAMAKKAN
- '\u0e4f' # 0xEF -> THAI CHARACTER FONGMAN
- '\u0e50' # 0xF0 -> THAI DIGIT ZERO
- '\u0e51' # 0xF1 -> THAI DIGIT ONE
- '\u0e52' # 0xF2 -> THAI DIGIT TWO
- '\u0e53' # 0xF3 -> THAI DIGIT THREE
- '\u0e54' # 0xF4 -> THAI DIGIT FOUR
- '\u0e55' # 0xF5 -> THAI DIGIT FIVE
- '\u0e56' # 0xF6 -> THAI DIGIT SIX
- '\u0e57' # 0xF7 -> THAI DIGIT SEVEN
- '\u0e58' # 0xF8 -> THAI DIGIT EIGHT
- '\u0e59' # 0xF9 -> THAI DIGIT NINE
- '\u0e5a' # 0xFA -> THAI CHARACTER ANGKHANKHU
- '\u0e5b' # 0xFB -> THAI CHARACTER KHOMUT
- '\ufffe' # 0xFC -> UNDEFINED
- '\ufffe' # 0xFD -> UNDEFINED
- '\ufffe' # 0xFE -> UNDEFINED
- '\ufffe' # 0xFF -> UNDEFINED
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp875.py b/EasyTrans/Lib/encodings/cp875.py
deleted file mode 100644
index c25a5a43..00000000
--- a/EasyTrans/Lib/encodings/cp875.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec cp875 generated from 'MAPPINGS/VENDORS/MICSFT/EBCDIC/CP875.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp875',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x9c' # 0x04 -> CONTROL
- '\t' # 0x05 -> HORIZONTAL TABULATION
- '\x86' # 0x06 -> CONTROL
- '\x7f' # 0x07 -> DELETE
- '\x97' # 0x08 -> CONTROL
- '\x8d' # 0x09 -> CONTROL
- '\x8e' # 0x0A -> CONTROL
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x9d' # 0x14 -> CONTROL
- '\x85' # 0x15 -> CONTROL
- '\x08' # 0x16 -> BACKSPACE
- '\x87' # 0x17 -> CONTROL
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x92' # 0x1A -> CONTROL
- '\x8f' # 0x1B -> CONTROL
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- '\x80' # 0x20 -> CONTROL
- '\x81' # 0x21 -> CONTROL
- '\x82' # 0x22 -> CONTROL
- '\x83' # 0x23 -> CONTROL
- '\x84' # 0x24 -> CONTROL
- '\n' # 0x25 -> LINE FEED
- '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
- '\x1b' # 0x27 -> ESCAPE
- '\x88' # 0x28 -> CONTROL
- '\x89' # 0x29 -> CONTROL
- '\x8a' # 0x2A -> CONTROL
- '\x8b' # 0x2B -> CONTROL
- '\x8c' # 0x2C -> CONTROL
- '\x05' # 0x2D -> ENQUIRY
- '\x06' # 0x2E -> ACKNOWLEDGE
- '\x07' # 0x2F -> BELL
- '\x90' # 0x30 -> CONTROL
- '\x91' # 0x31 -> CONTROL
- '\x16' # 0x32 -> SYNCHRONOUS IDLE
- '\x93' # 0x33 -> CONTROL
- '\x94' # 0x34 -> CONTROL
- '\x95' # 0x35 -> CONTROL
- '\x96' # 0x36 -> CONTROL
- '\x04' # 0x37 -> END OF TRANSMISSION
- '\x98' # 0x38 -> CONTROL
- '\x99' # 0x39 -> CONTROL
- '\x9a' # 0x3A -> CONTROL
- '\x9b' # 0x3B -> CONTROL
- '\x14' # 0x3C -> DEVICE CONTROL FOUR
- '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
- '\x9e' # 0x3E -> CONTROL
- '\x1a' # 0x3F -> SUBSTITUTE
- ' ' # 0x40 -> SPACE
- '\u0391' # 0x41 -> GREEK CAPITAL LETTER ALPHA
- '\u0392' # 0x42 -> GREEK CAPITAL LETTER BETA
- '\u0393' # 0x43 -> GREEK CAPITAL LETTER GAMMA
- '\u0394' # 0x44 -> GREEK CAPITAL LETTER DELTA
- '\u0395' # 0x45 -> GREEK CAPITAL LETTER EPSILON
- '\u0396' # 0x46 -> GREEK CAPITAL LETTER ZETA
- '\u0397' # 0x47 -> GREEK CAPITAL LETTER ETA
- '\u0398' # 0x48 -> GREEK CAPITAL LETTER THETA
- '\u0399' # 0x49 -> GREEK CAPITAL LETTER IOTA
- '[' # 0x4A -> LEFT SQUARE BRACKET
- '.' # 0x4B -> FULL STOP
- '<' # 0x4C -> LESS-THAN SIGN
- '(' # 0x4D -> LEFT PARENTHESIS
- '+' # 0x4E -> PLUS SIGN
- '!' # 0x4F -> EXCLAMATION MARK
- '&' # 0x50 -> AMPERSAND
- '\u039a' # 0x51 -> GREEK CAPITAL LETTER KAPPA
- '\u039b' # 0x52 -> GREEK CAPITAL LETTER LAMDA
- '\u039c' # 0x53 -> GREEK CAPITAL LETTER MU
- '\u039d' # 0x54 -> GREEK CAPITAL LETTER NU
- '\u039e' # 0x55 -> GREEK CAPITAL LETTER XI
- '\u039f' # 0x56 -> GREEK CAPITAL LETTER OMICRON
- '\u03a0' # 0x57 -> GREEK CAPITAL LETTER PI
- '\u03a1' # 0x58 -> GREEK CAPITAL LETTER RHO
- '\u03a3' # 0x59 -> GREEK CAPITAL LETTER SIGMA
- ']' # 0x5A -> RIGHT SQUARE BRACKET
- '$' # 0x5B -> DOLLAR SIGN
- '*' # 0x5C -> ASTERISK
- ')' # 0x5D -> RIGHT PARENTHESIS
- ';' # 0x5E -> SEMICOLON
- '^' # 0x5F -> CIRCUMFLEX ACCENT
- '-' # 0x60 -> HYPHEN-MINUS
- '/' # 0x61 -> SOLIDUS
- '\u03a4' # 0x62 -> GREEK CAPITAL LETTER TAU
- '\u03a5' # 0x63 -> GREEK CAPITAL LETTER UPSILON
- '\u03a6' # 0x64 -> GREEK CAPITAL LETTER PHI
- '\u03a7' # 0x65 -> GREEK CAPITAL LETTER CHI
- '\u03a8' # 0x66 -> GREEK CAPITAL LETTER PSI
- '\u03a9' # 0x67 -> GREEK CAPITAL LETTER OMEGA
- '\u03aa' # 0x68 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
- '\u03ab' # 0x69 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
- '|' # 0x6A -> VERTICAL LINE
- ',' # 0x6B -> COMMA
- '%' # 0x6C -> PERCENT SIGN
- '_' # 0x6D -> LOW LINE
- '>' # 0x6E -> GREATER-THAN SIGN
- '?' # 0x6F -> QUESTION MARK
- '\xa8' # 0x70 -> DIAERESIS
- '\u0386' # 0x71 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
- '\u0388' # 0x72 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
- '\u0389' # 0x73 -> GREEK CAPITAL LETTER ETA WITH TONOS
- '\xa0' # 0x74 -> NO-BREAK SPACE
- '\u038a' # 0x75 -> GREEK CAPITAL LETTER IOTA WITH TONOS
- '\u038c' # 0x76 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
- '\u038e' # 0x77 -> GREEK CAPITAL LETTER UPSILON WITH TONOS
- '\u038f' # 0x78 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
- '`' # 0x79 -> GRAVE ACCENT
- ':' # 0x7A -> COLON
- '#' # 0x7B -> NUMBER SIGN
- '@' # 0x7C -> COMMERCIAL AT
- "'" # 0x7D -> APOSTROPHE
- '=' # 0x7E -> EQUALS SIGN
- '"' # 0x7F -> QUOTATION MARK
- '\u0385' # 0x80 -> GREEK DIALYTIKA TONOS
- 'a' # 0x81 -> LATIN SMALL LETTER A
- 'b' # 0x82 -> LATIN SMALL LETTER B
- 'c' # 0x83 -> LATIN SMALL LETTER C
- 'd' # 0x84 -> LATIN SMALL LETTER D
- 'e' # 0x85 -> LATIN SMALL LETTER E
- 'f' # 0x86 -> LATIN SMALL LETTER F
- 'g' # 0x87 -> LATIN SMALL LETTER G
- 'h' # 0x88 -> LATIN SMALL LETTER H
- 'i' # 0x89 -> LATIN SMALL LETTER I
- '\u03b1' # 0x8A -> GREEK SMALL LETTER ALPHA
- '\u03b2' # 0x8B -> GREEK SMALL LETTER BETA
- '\u03b3' # 0x8C -> GREEK SMALL LETTER GAMMA
- '\u03b4' # 0x8D -> GREEK SMALL LETTER DELTA
- '\u03b5' # 0x8E -> GREEK SMALL LETTER EPSILON
- '\u03b6' # 0x8F -> GREEK SMALL LETTER ZETA
- '\xb0' # 0x90 -> DEGREE SIGN
- 'j' # 0x91 -> LATIN SMALL LETTER J
- 'k' # 0x92 -> LATIN SMALL LETTER K
- 'l' # 0x93 -> LATIN SMALL LETTER L
- 'm' # 0x94 -> LATIN SMALL LETTER M
- 'n' # 0x95 -> LATIN SMALL LETTER N
- 'o' # 0x96 -> LATIN SMALL LETTER O
- 'p' # 0x97 -> LATIN SMALL LETTER P
- 'q' # 0x98 -> LATIN SMALL LETTER Q
- 'r' # 0x99 -> LATIN SMALL LETTER R
- '\u03b7' # 0x9A -> GREEK SMALL LETTER ETA
- '\u03b8' # 0x9B -> GREEK SMALL LETTER THETA
- '\u03b9' # 0x9C -> GREEK SMALL LETTER IOTA
- '\u03ba' # 0x9D -> GREEK SMALL LETTER KAPPA
- '\u03bb' # 0x9E -> GREEK SMALL LETTER LAMDA
- '\u03bc' # 0x9F -> GREEK SMALL LETTER MU
- '\xb4' # 0xA0 -> ACUTE ACCENT
- '~' # 0xA1 -> TILDE
- 's' # 0xA2 -> LATIN SMALL LETTER S
- 't' # 0xA3 -> LATIN SMALL LETTER T
- 'u' # 0xA4 -> LATIN SMALL LETTER U
- 'v' # 0xA5 -> LATIN SMALL LETTER V
- 'w' # 0xA6 -> LATIN SMALL LETTER W
- 'x' # 0xA7 -> LATIN SMALL LETTER X
- 'y' # 0xA8 -> LATIN SMALL LETTER Y
- 'z' # 0xA9 -> LATIN SMALL LETTER Z
- '\u03bd' # 0xAA -> GREEK SMALL LETTER NU
- '\u03be' # 0xAB -> GREEK SMALL LETTER XI
- '\u03bf' # 0xAC -> GREEK SMALL LETTER OMICRON
- '\u03c0' # 0xAD -> GREEK SMALL LETTER PI
- '\u03c1' # 0xAE -> GREEK SMALL LETTER RHO
- '\u03c3' # 0xAF -> GREEK SMALL LETTER SIGMA
- '\xa3' # 0xB0 -> POUND SIGN
- '\u03ac' # 0xB1 -> GREEK SMALL LETTER ALPHA WITH TONOS
- '\u03ad' # 0xB2 -> GREEK SMALL LETTER EPSILON WITH TONOS
- '\u03ae' # 0xB3 -> GREEK SMALL LETTER ETA WITH TONOS
- '\u03ca' # 0xB4 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
- '\u03af' # 0xB5 -> GREEK SMALL LETTER IOTA WITH TONOS
- '\u03cc' # 0xB6 -> GREEK SMALL LETTER OMICRON WITH TONOS
- '\u03cd' # 0xB7 -> GREEK SMALL LETTER UPSILON WITH TONOS
- '\u03cb' # 0xB8 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
- '\u03ce' # 0xB9 -> GREEK SMALL LETTER OMEGA WITH TONOS
- '\u03c2' # 0xBA -> GREEK SMALL LETTER FINAL SIGMA
- '\u03c4' # 0xBB -> GREEK SMALL LETTER TAU
- '\u03c5' # 0xBC -> GREEK SMALL LETTER UPSILON
- '\u03c6' # 0xBD -> GREEK SMALL LETTER PHI
- '\u03c7' # 0xBE -> GREEK SMALL LETTER CHI
- '\u03c8' # 0xBF -> GREEK SMALL LETTER PSI
- '{' # 0xC0 -> LEFT CURLY BRACKET
- 'A' # 0xC1 -> LATIN CAPITAL LETTER A
- 'B' # 0xC2 -> LATIN CAPITAL LETTER B
- 'C' # 0xC3 -> LATIN CAPITAL LETTER C
- 'D' # 0xC4 -> LATIN CAPITAL LETTER D
- 'E' # 0xC5 -> LATIN CAPITAL LETTER E
- 'F' # 0xC6 -> LATIN CAPITAL LETTER F
- 'G' # 0xC7 -> LATIN CAPITAL LETTER G
- 'H' # 0xC8 -> LATIN CAPITAL LETTER H
- 'I' # 0xC9 -> LATIN CAPITAL LETTER I
- '\xad' # 0xCA -> SOFT HYPHEN
- '\u03c9' # 0xCB -> GREEK SMALL LETTER OMEGA
- '\u0390' # 0xCC -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
- '\u03b0' # 0xCD -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
- '\u2018' # 0xCE -> LEFT SINGLE QUOTATION MARK
- '\u2015' # 0xCF -> HORIZONTAL BAR
- '}' # 0xD0 -> RIGHT CURLY BRACKET
- 'J' # 0xD1 -> LATIN CAPITAL LETTER J
- 'K' # 0xD2 -> LATIN CAPITAL LETTER K
- 'L' # 0xD3 -> LATIN CAPITAL LETTER L
- 'M' # 0xD4 -> LATIN CAPITAL LETTER M
- 'N' # 0xD5 -> LATIN CAPITAL LETTER N
- 'O' # 0xD6 -> LATIN CAPITAL LETTER O
- 'P' # 0xD7 -> LATIN CAPITAL LETTER P
- 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
- 'R' # 0xD9 -> LATIN CAPITAL LETTER R
- '\xb1' # 0xDA -> PLUS-MINUS SIGN
- '\xbd' # 0xDB -> VULGAR FRACTION ONE HALF
- '\x1a' # 0xDC -> SUBSTITUTE
- '\u0387' # 0xDD -> GREEK ANO TELEIA
- '\u2019' # 0xDE -> RIGHT SINGLE QUOTATION MARK
- '\xa6' # 0xDF -> BROKEN BAR
- '\\' # 0xE0 -> REVERSE SOLIDUS
- '\x1a' # 0xE1 -> SUBSTITUTE
- 'S' # 0xE2 -> LATIN CAPITAL LETTER S
- 'T' # 0xE3 -> LATIN CAPITAL LETTER T
- 'U' # 0xE4 -> LATIN CAPITAL LETTER U
- 'V' # 0xE5 -> LATIN CAPITAL LETTER V
- 'W' # 0xE6 -> LATIN CAPITAL LETTER W
- 'X' # 0xE7 -> LATIN CAPITAL LETTER X
- 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
- 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
- '\xb2' # 0xEA -> SUPERSCRIPT TWO
- '\xa7' # 0xEB -> SECTION SIGN
- '\x1a' # 0xEC -> SUBSTITUTE
- '\x1a' # 0xED -> SUBSTITUTE
- '\xab' # 0xEE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xac' # 0xEF -> NOT SIGN
- '0' # 0xF0 -> DIGIT ZERO
- '1' # 0xF1 -> DIGIT ONE
- '2' # 0xF2 -> DIGIT TWO
- '3' # 0xF3 -> DIGIT THREE
- '4' # 0xF4 -> DIGIT FOUR
- '5' # 0xF5 -> DIGIT FIVE
- '6' # 0xF6 -> DIGIT SIX
- '7' # 0xF7 -> DIGIT SEVEN
- '8' # 0xF8 -> DIGIT EIGHT
- '9' # 0xF9 -> DIGIT NINE
- '\xb3' # 0xFA -> SUPERSCRIPT THREE
- '\xa9' # 0xFB -> COPYRIGHT SIGN
- '\x1a' # 0xFC -> SUBSTITUTE
- '\x1a' # 0xFD -> SUBSTITUTE
- '\xbb' # 0xFE -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\x9f' # 0xFF -> CONTROL
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/cp932.py b/EasyTrans/Lib/encodings/cp932.py
deleted file mode 100644
index e01f59b7..00000000
--- a/EasyTrans/Lib/encodings/cp932.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# cp932.py: Python Unicode Codec for CP932
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_jp, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_jp.getcodec('cp932')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp932',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/cp949.py b/EasyTrans/Lib/encodings/cp949.py
deleted file mode 100644
index 627c8712..00000000
--- a/EasyTrans/Lib/encodings/cp949.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# cp949.py: Python Unicode Codec for CP949
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_kr, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_kr.getcodec('cp949')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp949',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/cp950.py b/EasyTrans/Lib/encodings/cp950.py
deleted file mode 100644
index 39eec5ed..00000000
--- a/EasyTrans/Lib/encodings/cp950.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# cp950.py: Python Unicode Codec for CP950
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_tw, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_tw.getcodec('cp950')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='cp950',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/euc_jis_2004.py b/EasyTrans/Lib/encodings/euc_jis_2004.py
deleted file mode 100644
index 72b87aea..00000000
--- a/EasyTrans/Lib/encodings/euc_jis_2004.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# euc_jis_2004.py: Python Unicode Codec for EUC_JIS_2004
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_jp, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_jp.getcodec('euc_jis_2004')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='euc_jis_2004',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/euc_jisx0213.py b/EasyTrans/Lib/encodings/euc_jisx0213.py
deleted file mode 100644
index cc47d041..00000000
--- a/EasyTrans/Lib/encodings/euc_jisx0213.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# euc_jisx0213.py: Python Unicode Codec for EUC_JISX0213
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_jp, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_jp.getcodec('euc_jisx0213')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='euc_jisx0213',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/euc_jp.py b/EasyTrans/Lib/encodings/euc_jp.py
deleted file mode 100644
index 7bcbe414..00000000
--- a/EasyTrans/Lib/encodings/euc_jp.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# euc_jp.py: Python Unicode Codec for EUC_JP
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_jp, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_jp.getcodec('euc_jp')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='euc_jp',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/euc_kr.py b/EasyTrans/Lib/encodings/euc_kr.py
deleted file mode 100644
index c1fb1260..00000000
--- a/EasyTrans/Lib/encodings/euc_kr.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# euc_kr.py: Python Unicode Codec for EUC_KR
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_kr, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_kr.getcodec('euc_kr')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='euc_kr',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/gb18030.py b/EasyTrans/Lib/encodings/gb18030.py
deleted file mode 100644
index 34fb6c36..00000000
--- a/EasyTrans/Lib/encodings/gb18030.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# gb18030.py: Python Unicode Codec for GB18030
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_cn, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_cn.getcodec('gb18030')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='gb18030',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/gb2312.py b/EasyTrans/Lib/encodings/gb2312.py
deleted file mode 100644
index 3c3b837d..00000000
--- a/EasyTrans/Lib/encodings/gb2312.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# gb2312.py: Python Unicode Codec for GB2312
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_cn, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_cn.getcodec('gb2312')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='gb2312',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/gbk.py b/EasyTrans/Lib/encodings/gbk.py
deleted file mode 100644
index 1b45db89..00000000
--- a/EasyTrans/Lib/encodings/gbk.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# gbk.py: Python Unicode Codec for GBK
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_cn, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_cn.getcodec('gbk')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='gbk',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/hex_codec.py b/EasyTrans/Lib/encodings/hex_codec.py
deleted file mode 100644
index 9fb10728..00000000
--- a/EasyTrans/Lib/encodings/hex_codec.py
+++ /dev/null
@@ -1,55 +0,0 @@
-"""Python 'hex_codec' Codec - 2-digit hex content transfer encoding.
-
-This codec de/encodes from bytes to bytes.
-
-Written by Marc-Andre Lemburg (mal@lemburg.com).
-"""
-
-import codecs
-import binascii
-
-### Codec APIs
-
-def hex_encode(input, errors='strict'):
- assert errors == 'strict'
- return (binascii.b2a_hex(input), len(input))
-
-def hex_decode(input, errors='strict'):
- assert errors == 'strict'
- return (binascii.a2b_hex(input), len(input))
-
-class Codec(codecs.Codec):
- def encode(self, input, errors='strict'):
- return hex_encode(input, errors)
- def decode(self, input, errors='strict'):
- return hex_decode(input, errors)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- assert self.errors == 'strict'
- return binascii.b2a_hex(input)
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- assert self.errors == 'strict'
- return binascii.a2b_hex(input)
-
-class StreamWriter(Codec, codecs.StreamWriter):
- charbuffertype = bytes
-
-class StreamReader(Codec, codecs.StreamReader):
- charbuffertype = bytes
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='hex',
- encode=hex_encode,
- decode=hex_decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamwriter=StreamWriter,
- streamreader=StreamReader,
- _is_text_encoding=False,
- )
diff --git a/EasyTrans/Lib/encodings/hp_roman8.py b/EasyTrans/Lib/encodings/hp_roman8.py
deleted file mode 100644
index 58de1033..00000000
--- a/EasyTrans/Lib/encodings/hp_roman8.py
+++ /dev/null
@@ -1,314 +0,0 @@
-""" Python Character Mapping Codec generated from 'hp_roman8.txt' with gencodec.py.
-
- Based on data from ftp://dkuug.dk/i18n/charmaps/HP-ROMAN8 (Keld Simonsen)
-
- Original source: LaserJet IIP Printer User's Manual HP part no
- 33471-90901, Hewlet-Packard, June 1989.
-
- (Used with permission)
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='hp-roman8',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamwriter=StreamWriter,
- streamreader=StreamReader,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\x80' # 0x80 ->
- '\x81' # 0x81 ->
- '\x82' # 0x82 ->
- '\x83' # 0x83 ->
- '\x84' # 0x84 ->
- '\x85' # 0x85 ->
- '\x86' # 0x86 ->
- '\x87' # 0x87 ->
- '\x88' # 0x88 ->
- '\x89' # 0x89 ->
- '\x8a' # 0x8A ->
- '\x8b' # 0x8B ->
- '\x8c' # 0x8C ->
- '\x8d' # 0x8D ->
- '\x8e' # 0x8E ->
- '\x8f' # 0x8F ->
- '\x90' # 0x90 ->
- '\x91' # 0x91 ->
- '\x92' # 0x92 ->
- '\x93' # 0x93 ->
- '\x94' # 0x94 ->
- '\x95' # 0x95 ->
- '\x96' # 0x96 ->
- '\x97' # 0x97 ->
- '\x98' # 0x98 ->
- '\x99' # 0x99 ->
- '\x9a' # 0x9A ->
- '\x9b' # 0x9B ->
- '\x9c' # 0x9C ->
- '\x9d' # 0x9D ->
- '\x9e' # 0x9E ->
- '\x9f' # 0x9F ->
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\xc0' # 0xA1 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xc2' # 0xA2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc8' # 0xA3 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xca' # 0xA4 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0xA5 -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xce' # 0xA6 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0xA7 -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\xb4' # 0xA8 -> ACUTE ACCENT
- '\u02cb' # 0xA9 -> MODIFIER LETTER GRAVE ACCENT (MANDARIN CHINESE FOURTH TONE)
- '\u02c6' # 0xAA -> MODIFIER LETTER CIRCUMFLEX ACCENT
- '\xa8' # 0xAB -> DIAERESIS
- '\u02dc' # 0xAC -> SMALL TILDE
- '\xd9' # 0xAD -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xdb' # 0xAE -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\u20a4' # 0xAF -> LIRA SIGN
- '\xaf' # 0xB0 -> MACRON
- '\xdd' # 0xB1 -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\xfd' # 0xB2 -> LATIN SMALL LETTER Y WITH ACUTE
- '\xb0' # 0xB3 -> DEGREE SIGN
- '\xc7' # 0xB4 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xe7' # 0xB5 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xd1' # 0xB6 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xf1' # 0xB7 -> LATIN SMALL LETTER N WITH TILDE
- '\xa1' # 0xB8 -> INVERTED EXCLAMATION MARK
- '\xbf' # 0xB9 -> INVERTED QUESTION MARK
- '\xa4' # 0xBA -> CURRENCY SIGN
- '\xa3' # 0xBB -> POUND SIGN
- '\xa5' # 0xBC -> YEN SIGN
- '\xa7' # 0xBD -> SECTION SIGN
- '\u0192' # 0xBE -> LATIN SMALL LETTER F WITH HOOK
- '\xa2' # 0xBF -> CENT SIGN
- '\xe2' # 0xC0 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xea' # 0xC1 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xf4' # 0xC2 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xfb' # 0xC3 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xe1' # 0xC4 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe9' # 0xC5 -> LATIN SMALL LETTER E WITH ACUTE
- '\xf3' # 0xC6 -> LATIN SMALL LETTER O WITH ACUTE
- '\xfa' # 0xC7 -> LATIN SMALL LETTER U WITH ACUTE
- '\xe0' # 0xC8 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe8' # 0xC9 -> LATIN SMALL LETTER E WITH GRAVE
- '\xf2' # 0xCA -> LATIN SMALL LETTER O WITH GRAVE
- '\xf9' # 0xCB -> LATIN SMALL LETTER U WITH GRAVE
- '\xe4' # 0xCC -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xeb' # 0xCD -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xf6' # 0xCE -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xfc' # 0xCF -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xc5' # 0xD0 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xee' # 0xD1 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xd8' # 0xD2 -> LATIN CAPITAL LETTER O WITH STROKE
- '\xc6' # 0xD3 -> LATIN CAPITAL LETTER AE
- '\xe5' # 0xD4 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xed' # 0xD5 -> LATIN SMALL LETTER I WITH ACUTE
- '\xf8' # 0xD6 -> LATIN SMALL LETTER O WITH STROKE
- '\xe6' # 0xD7 -> LATIN SMALL LETTER AE
- '\xc4' # 0xD8 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xec' # 0xD9 -> LATIN SMALL LETTER I WITH GRAVE
- '\xd6' # 0xDA -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xdc' # 0xDB -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xc9' # 0xDC -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xef' # 0xDD -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xdf' # 0xDE -> LATIN SMALL LETTER SHARP S (GERMAN)
- '\xd4' # 0xDF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xc1' # 0xE0 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc3' # 0xE1 -> LATIN CAPITAL LETTER A WITH TILDE
- '\xe3' # 0xE2 -> LATIN SMALL LETTER A WITH TILDE
- '\xd0' # 0xE3 -> LATIN CAPITAL LETTER ETH (ICELANDIC)
- '\xf0' # 0xE4 -> LATIN SMALL LETTER ETH (ICELANDIC)
- '\xcd' # 0xE5 -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xcc' # 0xE6 -> LATIN CAPITAL LETTER I WITH GRAVE
- '\xd3' # 0xE7 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd2' # 0xE8 -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xd5' # 0xE9 -> LATIN CAPITAL LETTER O WITH TILDE
- '\xf5' # 0xEA -> LATIN SMALL LETTER O WITH TILDE
- '\u0160' # 0xEB -> LATIN CAPITAL LETTER S WITH CARON
- '\u0161' # 0xEC -> LATIN SMALL LETTER S WITH CARON
- '\xda' # 0xED -> LATIN CAPITAL LETTER U WITH ACUTE
- '\u0178' # 0xEE -> LATIN CAPITAL LETTER Y WITH DIAERESIS
- '\xff' # 0xEF -> LATIN SMALL LETTER Y WITH DIAERESIS
- '\xde' # 0xF0 -> LATIN CAPITAL LETTER THORN (ICELANDIC)
- '\xfe' # 0xF1 -> LATIN SMALL LETTER THORN (ICELANDIC)
- '\xb7' # 0xF2 -> MIDDLE DOT
- '\xb5' # 0xF3 -> MICRO SIGN
- '\xb6' # 0xF4 -> PILCROW SIGN
- '\xbe' # 0xF5 -> VULGAR FRACTION THREE QUARTERS
- '\u2014' # 0xF6 -> EM DASH
- '\xbc' # 0xF7 -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xF8 -> VULGAR FRACTION ONE HALF
- '\xaa' # 0xF9 -> FEMININE ORDINAL INDICATOR
- '\xba' # 0xFA -> MASCULINE ORDINAL INDICATOR
- '\xab' # 0xFB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\u25a0' # 0xFC -> BLACK SQUARE
- '\xbb' # 0xFD -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xb1' # 0xFE -> PLUS-MINUS SIGN
- '\ufffe'
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/hz.py b/EasyTrans/Lib/encodings/hz.py
deleted file mode 100644
index 383442a3..00000000
--- a/EasyTrans/Lib/encodings/hz.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# hz.py: Python Unicode Codec for HZ
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_cn, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_cn.getcodec('hz')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='hz',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/idna.py b/EasyTrans/Lib/encodings/idna.py
deleted file mode 100644
index ea405851..00000000
--- a/EasyTrans/Lib/encodings/idna.py
+++ /dev/null
@@ -1,309 +0,0 @@
-# This module implements the RFCs 3490 (IDNA) and 3491 (Nameprep)
-
-import stringprep, re, codecs
-from unicodedata import ucd_3_2_0 as unicodedata
-
-# IDNA section 3.1
-dots = re.compile("[\u002E\u3002\uFF0E\uFF61]")
-
-# IDNA section 5
-ace_prefix = b"xn--"
-sace_prefix = "xn--"
-
-# This assumes query strings, so AllowUnassigned is true
-def nameprep(label):
- # Map
- newlabel = []
- for c in label:
- if stringprep.in_table_b1(c):
- # Map to nothing
- continue
- newlabel.append(stringprep.map_table_b2(c))
- label = "".join(newlabel)
-
- # Normalize
- label = unicodedata.normalize("NFKC", label)
-
- # Prohibit
- for c in label:
- if stringprep.in_table_c12(c) or \
- stringprep.in_table_c22(c) or \
- stringprep.in_table_c3(c) or \
- stringprep.in_table_c4(c) or \
- stringprep.in_table_c5(c) or \
- stringprep.in_table_c6(c) or \
- stringprep.in_table_c7(c) or \
- stringprep.in_table_c8(c) or \
- stringprep.in_table_c9(c):
- raise UnicodeError("Invalid character %r" % c)
-
- # Check bidi
- RandAL = [stringprep.in_table_d1(x) for x in label]
- for c in RandAL:
- if c:
- # There is a RandAL char in the string. Must perform further
- # tests:
- # 1) The characters in section 5.8 MUST be prohibited.
- # This is table C.8, which was already checked
- # 2) If a string contains any RandALCat character, the string
- # MUST NOT contain any LCat character.
- if any(stringprep.in_table_d2(x) for x in label):
- raise UnicodeError("Violation of BIDI requirement 2")
-
- # 3) If a string contains any RandALCat character, a
- # RandALCat character MUST be the first character of the
- # string, and a RandALCat character MUST be the last
- # character of the string.
- if not RandAL[0] or not RandAL[-1]:
- raise UnicodeError("Violation of BIDI requirement 3")
-
- return label
-
-def ToASCII(label):
- try:
- # Step 1: try ASCII
- label = label.encode("ascii")
- except UnicodeError:
- pass
- else:
- # Skip to step 3: UseSTD3ASCIIRules is false, so
- # Skip to step 8.
- if 0 < len(label) < 64:
- return label
- raise UnicodeError("label empty or too long")
-
- # Step 2: nameprep
- label = nameprep(label)
-
- # Step 3: UseSTD3ASCIIRules is false
- # Step 4: try ASCII
- try:
- label = label.encode("ascii")
- except UnicodeError:
- pass
- else:
- # Skip to step 8.
- if 0 < len(label) < 64:
- return label
- raise UnicodeError("label empty or too long")
-
- # Step 5: Check ACE prefix
- if label.startswith(sace_prefix):
- raise UnicodeError("Label starts with ACE prefix")
-
- # Step 6: Encode with PUNYCODE
- label = label.encode("punycode")
-
- # Step 7: Prepend ACE prefix
- label = ace_prefix + label
-
- # Step 8: Check size
- if 0 < len(label) < 64:
- return label
- raise UnicodeError("label empty or too long")
-
-def ToUnicode(label):
- # Step 1: Check for ASCII
- if isinstance(label, bytes):
- pure_ascii = True
- else:
- try:
- label = label.encode("ascii")
- pure_ascii = True
- except UnicodeError:
- pure_ascii = False
- if not pure_ascii:
- # Step 2: Perform nameprep
- label = nameprep(label)
- # It doesn't say this, but apparently, it should be ASCII now
- try:
- label = label.encode("ascii")
- except UnicodeError:
- raise UnicodeError("Invalid character in IDN label")
- # Step 3: Check for ACE prefix
- if not label.startswith(ace_prefix):
- return str(label, "ascii")
-
- # Step 4: Remove ACE prefix
- label1 = label[len(ace_prefix):]
-
- # Step 5: Decode using PUNYCODE
- result = label1.decode("punycode")
-
- # Step 6: Apply ToASCII
- label2 = ToASCII(result)
-
- # Step 7: Compare the result of step 6 with the one of step 3
- # label2 will already be in lower case.
- if str(label, "ascii").lower() != str(label2, "ascii"):
- raise UnicodeError("IDNA does not round-trip", label, label2)
-
- # Step 8: return the result of step 5
- return result
-
-### Codec APIs
-
-class Codec(codecs.Codec):
- def encode(self, input, errors='strict'):
-
- if errors != 'strict':
- # IDNA is quite clear that implementations must be strict
- raise UnicodeError("unsupported error handling "+errors)
-
- if not input:
- return b'', 0
-
- try:
- result = input.encode('ascii')
- except UnicodeEncodeError:
- pass
- else:
- # ASCII name: fast path
- labels = result.split(b'.')
- for label in labels[:-1]:
- if not (0 < len(label) < 64):
- raise UnicodeError("label empty or too long")
- if len(labels[-1]) >= 64:
- raise UnicodeError("label too long")
- return result, len(input)
-
- result = bytearray()
- labels = dots.split(input)
- if labels and not labels[-1]:
- trailing_dot = b'.'
- del labels[-1]
- else:
- trailing_dot = b''
- for label in labels:
- if result:
- # Join with U+002E
- result.extend(b'.')
- result.extend(ToASCII(label))
- return bytes(result+trailing_dot), len(input)
-
- def decode(self, input, errors='strict'):
-
- if errors != 'strict':
- raise UnicodeError("Unsupported error handling "+errors)
-
- if not input:
- return "", 0
-
- # IDNA allows decoding to operate on Unicode strings, too.
- if not isinstance(input, bytes):
- # XXX obviously wrong, see #3232
- input = bytes(input)
-
- if ace_prefix not in input:
- # Fast path
- try:
- return input.decode('ascii'), len(input)
- except UnicodeDecodeError:
- pass
-
- labels = input.split(b".")
-
- if labels and len(labels[-1]) == 0:
- trailing_dot = '.'
- del labels[-1]
- else:
- trailing_dot = ''
-
- result = []
- for label in labels:
- result.append(ToUnicode(label))
-
- return ".".join(result)+trailing_dot, len(input)
-
-class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
- def _buffer_encode(self, input, errors, final):
- if errors != 'strict':
- # IDNA is quite clear that implementations must be strict
- raise UnicodeError("unsupported error handling "+errors)
-
- if not input:
- return (b'', 0)
-
- labels = dots.split(input)
- trailing_dot = b''
- if labels:
- if not labels[-1]:
- trailing_dot = b'.'
- del labels[-1]
- elif not final:
- # Keep potentially unfinished label until the next call
- del labels[-1]
- if labels:
- trailing_dot = b'.'
-
- result = bytearray()
- size = 0
- for label in labels:
- if size:
- # Join with U+002E
- result.extend(b'.')
- size += 1
- result.extend(ToASCII(label))
- size += len(label)
-
- result += trailing_dot
- size += len(trailing_dot)
- return (bytes(result), size)
-
-class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
- def _buffer_decode(self, input, errors, final):
- if errors != 'strict':
- raise UnicodeError("Unsupported error handling "+errors)
-
- if not input:
- return ("", 0)
-
- # IDNA allows decoding to operate on Unicode strings, too.
- if isinstance(input, str):
- labels = dots.split(input)
- else:
- # Must be ASCII string
- input = str(input, "ascii")
- labels = input.split(".")
-
- trailing_dot = ''
- if labels:
- if not labels[-1]:
- trailing_dot = '.'
- del labels[-1]
- elif not final:
- # Keep potentially unfinished label until the next call
- del labels[-1]
- if labels:
- trailing_dot = '.'
-
- result = []
- size = 0
- for label in labels:
- result.append(ToUnicode(label))
- if size:
- size += 1
- size += len(label)
-
- result = ".".join(result) + trailing_dot
- size += len(trailing_dot)
- return (result, size)
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='idna',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamwriter=StreamWriter,
- streamreader=StreamReader,
- )
diff --git a/EasyTrans/Lib/encodings/iso2022_jp.py b/EasyTrans/Lib/encodings/iso2022_jp.py
deleted file mode 100644
index ab040606..00000000
--- a/EasyTrans/Lib/encodings/iso2022_jp.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# iso2022_jp.py: Python Unicode Codec for ISO2022_JP
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_iso2022, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_iso2022.getcodec('iso2022_jp')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='iso2022_jp',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/iso2022_jp_1.py b/EasyTrans/Lib/encodings/iso2022_jp_1.py
deleted file mode 100644
index 997044dc..00000000
--- a/EasyTrans/Lib/encodings/iso2022_jp_1.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# iso2022_jp_1.py: Python Unicode Codec for ISO2022_JP_1
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_iso2022, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_iso2022.getcodec('iso2022_jp_1')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='iso2022_jp_1',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/iso2022_jp_2.py b/EasyTrans/Lib/encodings/iso2022_jp_2.py
deleted file mode 100644
index 9106bf76..00000000
--- a/EasyTrans/Lib/encodings/iso2022_jp_2.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# iso2022_jp_2.py: Python Unicode Codec for ISO2022_JP_2
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_iso2022, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_iso2022.getcodec('iso2022_jp_2')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='iso2022_jp_2',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/iso2022_jp_2004.py b/EasyTrans/Lib/encodings/iso2022_jp_2004.py
deleted file mode 100644
index 40198bf0..00000000
--- a/EasyTrans/Lib/encodings/iso2022_jp_2004.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# iso2022_jp_2004.py: Python Unicode Codec for ISO2022_JP_2004
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_iso2022, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_iso2022.getcodec('iso2022_jp_2004')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='iso2022_jp_2004',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/iso2022_jp_3.py b/EasyTrans/Lib/encodings/iso2022_jp_3.py
deleted file mode 100644
index 346e08be..00000000
--- a/EasyTrans/Lib/encodings/iso2022_jp_3.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# iso2022_jp_3.py: Python Unicode Codec for ISO2022_JP_3
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_iso2022, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_iso2022.getcodec('iso2022_jp_3')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='iso2022_jp_3',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/iso2022_jp_ext.py b/EasyTrans/Lib/encodings/iso2022_jp_ext.py
deleted file mode 100644
index 752bab98..00000000
--- a/EasyTrans/Lib/encodings/iso2022_jp_ext.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# iso2022_jp_ext.py: Python Unicode Codec for ISO2022_JP_EXT
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_iso2022, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_iso2022.getcodec('iso2022_jp_ext')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='iso2022_jp_ext',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/iso2022_kr.py b/EasyTrans/Lib/encodings/iso2022_kr.py
deleted file mode 100644
index bf701876..00000000
--- a/EasyTrans/Lib/encodings/iso2022_kr.py
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# iso2022_kr.py: Python Unicode Codec for ISO2022_KR
-#
-# Written by Hye-Shik Chang
-#
-
-import _codecs_iso2022, codecs
-import _multibytecodec as mbc
-
-codec = _codecs_iso2022.getcodec('iso2022_kr')
-
-class Codec(codecs.Codec):
- encode = codec.encode
- decode = codec.decode
-
-class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
- codecs.IncrementalEncoder):
- codec = codec
-
-class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
- codecs.IncrementalDecoder):
- codec = codec
-
-class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
- codec = codec
-
-class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
- codec = codec
-
-def getregentry():
- return codecs.CodecInfo(
- name='iso2022_kr',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
diff --git a/EasyTrans/Lib/encodings/iso8859_1.py b/EasyTrans/Lib/encodings/iso8859_1.py
deleted file mode 100644
index 8cfc01fe..00000000
--- a/EasyTrans/Lib/encodings/iso8859_1.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec iso8859_1 generated from 'MAPPINGS/ISO8859/8859-1.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='iso8859-1',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\x80' # 0x80 ->
- '\x81' # 0x81 ->
- '\x82' # 0x82 ->
- '\x83' # 0x83 ->
- '\x84' # 0x84 ->
- '\x85' # 0x85 ->
- '\x86' # 0x86 ->
- '\x87' # 0x87 ->
- '\x88' # 0x88 ->
- '\x89' # 0x89 ->
- '\x8a' # 0x8A ->
- '\x8b' # 0x8B ->
- '\x8c' # 0x8C ->
- '\x8d' # 0x8D ->
- '\x8e' # 0x8E ->
- '\x8f' # 0x8F ->
- '\x90' # 0x90 ->
- '\x91' # 0x91 ->
- '\x92' # 0x92 ->
- '\x93' # 0x93 ->
- '\x94' # 0x94 ->
- '\x95' # 0x95 ->
- '\x96' # 0x96 ->
- '\x97' # 0x97 ->
- '\x98' # 0x98 ->
- '\x99' # 0x99 ->
- '\x9a' # 0x9A ->
- '\x9b' # 0x9B ->
- '\x9c' # 0x9C ->
- '\x9d' # 0x9D ->
- '\x9e' # 0x9E ->
- '\x9f' # 0x9F ->
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\xa1' # 0xA1 -> INVERTED EXCLAMATION MARK
- '\xa2' # 0xA2 -> CENT SIGN
- '\xa3' # 0xA3 -> POUND SIGN
- '\xa4' # 0xA4 -> CURRENCY SIGN
- '\xa5' # 0xA5 -> YEN SIGN
- '\xa6' # 0xA6 -> BROKEN BAR
- '\xa7' # 0xA7 -> SECTION SIGN
- '\xa8' # 0xA8 -> DIAERESIS
- '\xa9' # 0xA9 -> COPYRIGHT SIGN
- '\xaa' # 0xAA -> FEMININE ORDINAL INDICATOR
- '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xac' # 0xAC -> NOT SIGN
- '\xad' # 0xAD -> SOFT HYPHEN
- '\xae' # 0xAE -> REGISTERED SIGN
- '\xaf' # 0xAF -> MACRON
- '\xb0' # 0xB0 -> DEGREE SIGN
- '\xb1' # 0xB1 -> PLUS-MINUS SIGN
- '\xb2' # 0xB2 -> SUPERSCRIPT TWO
- '\xb3' # 0xB3 -> SUPERSCRIPT THREE
- '\xb4' # 0xB4 -> ACUTE ACCENT
- '\xb5' # 0xB5 -> MICRO SIGN
- '\xb6' # 0xB6 -> PILCROW SIGN
- '\xb7' # 0xB7 -> MIDDLE DOT
- '\xb8' # 0xB8 -> CEDILLA
- '\xb9' # 0xB9 -> SUPERSCRIPT ONE
- '\xba' # 0xBA -> MASCULINE ORDINAL INDICATOR
- '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
- '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
- '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
- '\xbf' # 0xBF -> INVERTED QUESTION MARK
- '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
- '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc3' # 0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
- '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
- '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
- '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
- '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
- '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\xcc' # 0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
- '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\xd0' # 0xD0 -> LATIN CAPITAL LETTER ETH (Icelandic)
- '\xd1' # 0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
- '\xd2' # 0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
- '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
- '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\xd7' # 0xD7 -> MULTIPLICATION SIGN
- '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
- '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
- '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
- '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xdd' # 0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\xde' # 0xDE -> LATIN CAPITAL LETTER THORN (Icelandic)
- '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S (German)
- '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
- '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe3' # 0xE3 -> LATIN SMALL LETTER A WITH TILDE
- '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
- '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
- '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
- '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
- '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
- '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
- '\xec' # 0xEC -> LATIN SMALL LETTER I WITH GRAVE
- '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
- '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xf0' # 0xF0 -> LATIN SMALL LETTER ETH (Icelandic)
- '\xf1' # 0xF1 -> LATIN SMALL LETTER N WITH TILDE
- '\xf2' # 0xF2 -> LATIN SMALL LETTER O WITH GRAVE
- '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
- '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
- '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\xf7' # 0xF7 -> DIVISION SIGN
- '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
- '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
- '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
- '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xfd' # 0xFD -> LATIN SMALL LETTER Y WITH ACUTE
- '\xfe' # 0xFE -> LATIN SMALL LETTER THORN (Icelandic)
- '\xff' # 0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/iso8859_10.py b/EasyTrans/Lib/encodings/iso8859_10.py
deleted file mode 100644
index b4fb0419..00000000
--- a/EasyTrans/Lib/encodings/iso8859_10.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec iso8859_10 generated from 'MAPPINGS/ISO8859/8859-10.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='iso8859-10',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\x80' # 0x80 ->
- '\x81' # 0x81 ->
- '\x82' # 0x82 ->
- '\x83' # 0x83 ->
- '\x84' # 0x84 ->
- '\x85' # 0x85 ->
- '\x86' # 0x86 ->
- '\x87' # 0x87 ->
- '\x88' # 0x88 ->
- '\x89' # 0x89 ->
- '\x8a' # 0x8A ->
- '\x8b' # 0x8B ->
- '\x8c' # 0x8C ->
- '\x8d' # 0x8D ->
- '\x8e' # 0x8E ->
- '\x8f' # 0x8F ->
- '\x90' # 0x90 ->
- '\x91' # 0x91 ->
- '\x92' # 0x92 ->
- '\x93' # 0x93 ->
- '\x94' # 0x94 ->
- '\x95' # 0x95 ->
- '\x96' # 0x96 ->
- '\x97' # 0x97 ->
- '\x98' # 0x98 ->
- '\x99' # 0x99 ->
- '\x9a' # 0x9A ->
- '\x9b' # 0x9B ->
- '\x9c' # 0x9C ->
- '\x9d' # 0x9D ->
- '\x9e' # 0x9E ->
- '\x9f' # 0x9F ->
- '\xa0' # 0xA0 -> NO-BREAK SPACE
- '\u0104' # 0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
- '\u0112' # 0xA2 -> LATIN CAPITAL LETTER E WITH MACRON
- '\u0122' # 0xA3 -> LATIN CAPITAL LETTER G WITH CEDILLA
- '\u012a' # 0xA4 -> LATIN CAPITAL LETTER I WITH MACRON
- '\u0128' # 0xA5 -> LATIN CAPITAL LETTER I WITH TILDE
- '\u0136' # 0xA6 -> LATIN CAPITAL LETTER K WITH CEDILLA
- '\xa7' # 0xA7 -> SECTION SIGN
- '\u013b' # 0xA8 -> LATIN CAPITAL LETTER L WITH CEDILLA
- '\u0110' # 0xA9 -> LATIN CAPITAL LETTER D WITH STROKE
- '\u0160' # 0xAA -> LATIN CAPITAL LETTER S WITH CARON
- '\u0166' # 0xAB -> LATIN CAPITAL LETTER T WITH STROKE
- '\u017d' # 0xAC -> LATIN CAPITAL LETTER Z WITH CARON
- '\xad' # 0xAD -> SOFT HYPHEN
- '\u016a' # 0xAE -> LATIN CAPITAL LETTER U WITH MACRON
- '\u014a' # 0xAF -> LATIN CAPITAL LETTER ENG
- '\xb0' # 0xB0 -> DEGREE SIGN
- '\u0105' # 0xB1 -> LATIN SMALL LETTER A WITH OGONEK
- '\u0113' # 0xB2 -> LATIN SMALL LETTER E WITH MACRON
- '\u0123' # 0xB3 -> LATIN SMALL LETTER G WITH CEDILLA
- '\u012b' # 0xB4 -> LATIN SMALL LETTER I WITH MACRON
- '\u0129' # 0xB5 -> LATIN SMALL LETTER I WITH TILDE
- '\u0137' # 0xB6 -> LATIN SMALL LETTER K WITH CEDILLA
- '\xb7' # 0xB7 -> MIDDLE DOT
- '\u013c' # 0xB8 -> LATIN SMALL LETTER L WITH CEDILLA
- '\u0111' # 0xB9 -> LATIN SMALL LETTER D WITH STROKE
- '\u0161' # 0xBA -> LATIN SMALL LETTER S WITH CARON
- '\u0167' # 0xBB -> LATIN SMALL LETTER T WITH STROKE
- '\u017e' # 0xBC -> LATIN SMALL LETTER Z WITH CARON
- '\u2015' # 0xBD -> HORIZONTAL BAR
- '\u016b' # 0xBE -> LATIN SMALL LETTER U WITH MACRON
- '\u014b' # 0xBF -> LATIN SMALL LETTER ENG
- '\u0100' # 0xC0 -> LATIN CAPITAL LETTER A WITH MACRON
- '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
- '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
- '\xc3' # 0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
- '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
- '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
- '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
- '\u012e' # 0xC7 -> LATIN CAPITAL LETTER I WITH OGONEK
- '\u010c' # 0xC8 -> LATIN CAPITAL LETTER C WITH CARON
- '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
- '\u0118' # 0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
- '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
- '\u0116' # 0xCC -> LATIN CAPITAL LETTER E WITH DOT ABOVE
- '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
- '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
- '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
- '\xd0' # 0xD0 -> LATIN CAPITAL LETTER ETH (Icelandic)
- '\u0145' # 0xD1 -> LATIN CAPITAL LETTER N WITH CEDILLA
- '\u014c' # 0xD2 -> LATIN CAPITAL LETTER O WITH MACRON
- '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
- '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
- '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
- '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
- '\u0168' # 0xD7 -> LATIN CAPITAL LETTER U WITH TILDE
- '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
- '\u0172' # 0xD9 -> LATIN CAPITAL LETTER U WITH OGONEK
- '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
- '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
- '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
- '\xdd' # 0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
- '\xde' # 0xDE -> LATIN CAPITAL LETTER THORN (Icelandic)
- '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S (German)
- '\u0101' # 0xE0 -> LATIN SMALL LETTER A WITH MACRON
- '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
- '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
- '\xe3' # 0xE3 -> LATIN SMALL LETTER A WITH TILDE
- '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
- '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
- '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
- '\u012f' # 0xE7 -> LATIN SMALL LETTER I WITH OGONEK
- '\u010d' # 0xE8 -> LATIN SMALL LETTER C WITH CARON
- '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
- '\u0119' # 0xEA -> LATIN SMALL LETTER E WITH OGONEK
- '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
- '\u0117' # 0xEC -> LATIN SMALL LETTER E WITH DOT ABOVE
- '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
- '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
- '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
- '\xf0' # 0xF0 -> LATIN SMALL LETTER ETH (Icelandic)
- '\u0146' # 0xF1 -> LATIN SMALL LETTER N WITH CEDILLA
- '\u014d' # 0xF2 -> LATIN SMALL LETTER O WITH MACRON
- '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
- '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
- '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
- '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
- '\u0169' # 0xF7 -> LATIN SMALL LETTER U WITH TILDE
- '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
- '\u0173' # 0xF9 -> LATIN SMALL LETTER U WITH OGONEK
- '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
- '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
- '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
- '\xfd' # 0xFD -> LATIN SMALL LETTER Y WITH ACUTE
- '\xfe' # 0xFE -> LATIN SMALL LETTER THORN (Icelandic)
- '\u0138' # 0xFF -> LATIN SMALL LETTER KRA
-)
-
-### Encoding table
-encoding_table=codecs.charmap_build(decoding_table)
diff --git a/EasyTrans/Lib/encodings/iso8859_11.py b/EasyTrans/Lib/encodings/iso8859_11.py
deleted file mode 100644
index c7258ecf..00000000
--- a/EasyTrans/Lib/encodings/iso8859_11.py
+++ /dev/null
@@ -1,307 +0,0 @@
-""" Python Character Mapping Codec iso8859_11 generated from 'MAPPINGS/ISO8859/8859-11.TXT' with gencodec.py.
-
-"""#"
-
-import codecs
-
-### Codec APIs
-
-class Codec(codecs.Codec):
-
- def encode(self,input,errors='strict'):
- return codecs.charmap_encode(input,errors,encoding_table)
-
- def decode(self,input,errors='strict'):
- return codecs.charmap_decode(input,errors,decoding_table)
-
-class IncrementalEncoder(codecs.IncrementalEncoder):
- def encode(self, input, final=False):
- return codecs.charmap_encode(input,self.errors,encoding_table)[0]
-
-class IncrementalDecoder(codecs.IncrementalDecoder):
- def decode(self, input, final=False):
- return codecs.charmap_decode(input,self.errors,decoding_table)[0]
-
-class StreamWriter(Codec,codecs.StreamWriter):
- pass
-
-class StreamReader(Codec,codecs.StreamReader):
- pass
-
-### encodings module API
-
-def getregentry():
- return codecs.CodecInfo(
- name='iso8859-11',
- encode=Codec().encode,
- decode=Codec().decode,
- incrementalencoder=IncrementalEncoder,
- incrementaldecoder=IncrementalDecoder,
- streamreader=StreamReader,
- streamwriter=StreamWriter,
- )
-
-
-### Decoding Table
-
-decoding_table = (
- '\x00' # 0x00 -> NULL
- '\x01' # 0x01 -> START OF HEADING
- '\x02' # 0x02 -> START OF TEXT
- '\x03' # 0x03 -> END OF TEXT
- '\x04' # 0x04 -> END OF TRANSMISSION
- '\x05' # 0x05 -> ENQUIRY
- '\x06' # 0x06 -> ACKNOWLEDGE
- '\x07' # 0x07 -> BELL
- '\x08' # 0x08 -> BACKSPACE
- '\t' # 0x09 -> HORIZONTAL TABULATION
- '\n' # 0x0A -> LINE FEED
- '\x0b' # 0x0B -> VERTICAL TABULATION
- '\x0c' # 0x0C -> FORM FEED
- '\r' # 0x0D -> CARRIAGE RETURN
- '\x0e' # 0x0E -> SHIFT OUT
- '\x0f' # 0x0F -> SHIFT IN
- '\x10' # 0x10 -> DATA LINK ESCAPE
- '\x11' # 0x11 -> DEVICE CONTROL ONE
- '\x12' # 0x12 -> DEVICE CONTROL TWO
- '\x13' # 0x13 -> DEVICE CONTROL THREE
- '\x14' # 0x14 -> DEVICE CONTROL FOUR
- '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
- '\x16' # 0x16 -> SYNCHRONOUS IDLE
- '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
- '\x18' # 0x18 -> CANCEL
- '\x19' # 0x19 -> END OF MEDIUM
- '\x1a' # 0x1A -> SUBSTITUTE
- '\x1b' # 0x1B -> ESCAPE
- '\x1c' # 0x1C -> FILE SEPARATOR
- '\x1d' # 0x1D -> GROUP SEPARATOR
- '\x1e' # 0x1E -> RECORD SEPARATOR
- '\x1f' # 0x1F -> UNIT SEPARATOR
- ' ' # 0x20 -> SPACE
- '!' # 0x21 -> EXCLAMATION MARK
- '"' # 0x22 -> QUOTATION MARK
- '#' # 0x23 -> NUMBER SIGN
- '$' # 0x24 -> DOLLAR SIGN
- '%' # 0x25 -> PERCENT SIGN
- '&' # 0x26 -> AMPERSAND
- "'" # 0x27 -> APOSTROPHE
- '(' # 0x28 -> LEFT PARENTHESIS
- ')' # 0x29 -> RIGHT PARENTHESIS
- '*' # 0x2A -> ASTERISK
- '+' # 0x2B -> PLUS SIGN
- ',' # 0x2C -> COMMA
- '-' # 0x2D -> HYPHEN-MINUS
- '.' # 0x2E -> FULL STOP
- '/' # 0x2F -> SOLIDUS
- '0' # 0x30 -> DIGIT ZERO
- '1' # 0x31 -> DIGIT ONE
- '2' # 0x32 -> DIGIT TWO
- '3' # 0x33 -> DIGIT THREE
- '4' # 0x34 -> DIGIT FOUR
- '5' # 0x35 -> DIGIT FIVE
- '6' # 0x36 -> DIGIT SIX
- '7' # 0x37 -> DIGIT SEVEN
- '8' # 0x38 -> DIGIT EIGHT
- '9' # 0x39 -> DIGIT NINE
- ':' # 0x3A -> COLON
- ';' # 0x3B -> SEMICOLON
- '<' # 0x3C -> LESS-THAN SIGN
- '=' # 0x3D -> EQUALS SIGN
- '>' # 0x3E -> GREATER-THAN SIGN
- '?' # 0x3F -> QUESTION MARK
- '@' # 0x40 -> COMMERCIAL AT
- 'A' # 0x41 -> LATIN CAPITAL LETTER A
- 'B' # 0x42 -> LATIN CAPITAL LETTER B
- 'C' # 0x43 -> LATIN CAPITAL LETTER C
- 'D' # 0x44 -> LATIN CAPITAL LETTER D
- 'E' # 0x45 -> LATIN CAPITAL LETTER E
- 'F' # 0x46 -> LATIN CAPITAL LETTER F
- 'G' # 0x47 -> LATIN CAPITAL LETTER G
- 'H' # 0x48 -> LATIN CAPITAL LETTER H
- 'I' # 0x49 -> LATIN CAPITAL LETTER I
- 'J' # 0x4A -> LATIN CAPITAL LETTER J
- 'K' # 0x4B -> LATIN CAPITAL LETTER K
- 'L' # 0x4C -> LATIN CAPITAL LETTER L
- 'M' # 0x4D -> LATIN CAPITAL LETTER M
- 'N' # 0x4E -> LATIN CAPITAL LETTER N
- 'O' # 0x4F -> LATIN CAPITAL LETTER O
- 'P' # 0x50 -> LATIN CAPITAL LETTER P
- 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
- 'R' # 0x52 -> LATIN CAPITAL LETTER R
- 'S' # 0x53 -> LATIN CAPITAL LETTER S
- 'T' # 0x54 -> LATIN CAPITAL LETTER T
- 'U' # 0x55 -> LATIN CAPITAL LETTER U
- 'V' # 0x56 -> LATIN CAPITAL LETTER V
- 'W' # 0x57 -> LATIN CAPITAL LETTER W
- 'X' # 0x58 -> LATIN CAPITAL LETTER X
- 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
- 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
- '[' # 0x5B -> LEFT SQUARE BRACKET
- '\\' # 0x5C -> REVERSE SOLIDUS
- ']' # 0x5D -> RIGHT SQUARE BRACKET
- '^' # 0x5E -> CIRCUMFLEX ACCENT
- '_' # 0x5F -> LOW LINE
- '`' # 0x60 -> GRAVE ACCENT
- 'a' # 0x61 -> LATIN SMALL LETTER A
- 'b' # 0x62 -> LATIN SMALL LETTER B
- 'c' # 0x63 -> LATIN SMALL LETTER C
- 'd' # 0x64 -> LATIN SMALL LETTER D
- 'e' # 0x65 -> LATIN SMALL LETTER E
- 'f' # 0x66 -> LATIN SMALL LETTER F
- 'g' # 0x67 -> LATIN SMALL LETTER G
- 'h' # 0x68 -> LATIN SMALL LETTER H
- 'i' # 0x69 -> LATIN SMALL LETTER I
- 'j' # 0x6A -> LATIN SMALL LETTER J
- 'k' # 0x6B -> LATIN SMALL LETTER K
- 'l' # 0x6C -> LATIN SMALL LETTER L
- 'm' # 0x6D -> LATIN SMALL LETTER M
- 'n' # 0x6E -> LATIN SMALL LETTER N
- 'o' # 0x6F -> LATIN SMALL LETTER O
- 'p' # 0x70 -> LATIN SMALL LETTER P
- 'q' # 0x71 -> LATIN SMALL LETTER Q
- 'r' # 0x72 -> LATIN SMALL LETTER R
- 's' # 0x73 -> LATIN SMALL LETTER S
- 't' # 0x74 -> LATIN SMALL LETTER T
- 'u' # 0x75 -> LATIN SMALL LETTER U
- 'v' # 0x76 -> LATIN SMALL LETTER V
- 'w' # 0x77 -> LATIN SMALL LETTER W
- 'x' # 0x78 -> LATIN SMALL LETTER X
- 'y' # 0x79 -> LATIN SMALL LETTER Y
- 'z' # 0x7A -> LATIN SMALL LETTER Z
- '{' # 0x7B -> LEFT CURLY BRACKET
- '|' # 0x7C -> VERTICAL LINE
- '}' # 0x7D -> RIGHT CURLY BRACKET
- '~' # 0x7E -> TILDE
- '\x7f' # 0x7F -> DELETE
- '\x80' # 0x80 ->
- '\x81' # 0x81 ->
- '\x82' # 0x82 ->
- '\x83' # 0x83 ->