diff options
author | Peng Wu <alexepico@gmail.com> | 2015-09-06 14:43:21 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2015-09-06 14:46:42 +0800 |
commit | 1a66187b3b7ff5c52a1cb4458b17ceaed90ec77d (patch) | |
tree | 5a74fe7665f747e9505d345341ba6a94e2aa8229 /scripts2 | |
parent | 98074b17447f8aeca00ab037ae6b0c3c02a2a90b (diff) | |
download | libpinyin-1a66187b3b7ff5c52a1cb4458b17ceaed90ec77d.tar.gz libpinyin-1a66187b3b7ff5c52a1cb4458b17ceaed90ec77d.tar.xz libpinyin-1a66187b3b7ff5c52a1cb4458b17ceaed90ec77d.zip |
import utils.py from libzhuyin
Diffstat (limited to 'scripts2')
-rw-r--r-- | scripts2/utils.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/scripts2/utils.py b/scripts2/utils.py new file mode 100644 index 0000000..e33ed25 --- /dev/null +++ b/scripts2/utils.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +# vim:set et sts=4 sw=4: +# +# libpinyin - Library to deal with pinyin. +# +# Copyright (C) 2011 Peng Wu <alexepico@gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. + + +import os + +header = '''/* This file is generated by python scripts. Don't edit this file directly. + */ +''' + + +def expand_file(filename, get_table_content): + infile = open(filename, "r") + print(header) + for line in infile.readlines(): + line = line.rstrip(os.linesep) + if len(line) < 3: + print(line) + continue + if line[0] == '@' and line[-1] == '@': + tablename = line[1:-1] + print(get_table_content(tablename)) + else: + print(line) + + +def shuffle_all(instr): + for output in shuffle_recur(instr): + if output == instr: + continue + yield output + + +def shuffle_recur(instr): + if len(instr) == 1: + yield instr + else: + for i, ch in enumerate(instr): + recur = instr[:i] + instr[i+1:] + for s in shuffle_recur(recur): + yield ch + s + + +if __name__ == "__main__": + for s in shuffle_all("abc"): + print(s) |