Welcome, guest | Sign In | My Account | Store | Cart
'''code_module.py

The purpose of this module
is to provide functions
for the coding of strings.

This is a level 1 module.'''

#==================================
# Level 1 Functions: String To Code
#==================================

def string_to_number(string):
    '''string_to_number(string)

    Create a starting number.
    Tranlate the string into the number.
    Return the number.'''
    number = 1
    for character in string:
        number *= 256
        number += ord(character)
    return number

def number_to_code(number):
    '''number_to_code(long)

    Create a starting string.
    Translate the number into the code.
    Return the string.'''
    code = str()
    while number != 0:
        code = chr(number % 255 + 1) + code
        number /= 255
    return code

#==================================
# Level 1 Functions: Code To String
#==================================

def code_to_number(code):
    '''code_to_number(string)

    Create a starting number.
    Tranlate the code into the number.
    Return the number.'''
    number = 0
    for character in code:
        number *= 255
        number += ord(character) - 1
    return number

def number_to_string(number):
    '''number_to_string(long)

    Create a starting string.
    Translate the number into the string.
    Return the string.'''
    string = str()
    while number > 1:
        string = chr(number % 256) + string
        number /= 256
    return string

#===============================
# Level 2 Functions: To And From
#===============================

def string_to_code(string):
    '''string_to_code(string)

    Returns a string converted to code.'''
    return number_to_code(string_to_number(string))

def code_to_string(code):
    '''code_to_string(string)

    Returns code converted to a string.'''
    return number_to_string(code_to_number(code))

#================
# CGI: Print File
#================

if __name__ == '__main__': 
    from sys import argv
    print 'Content-type: text/plain'
    print
    print file(argv[0]).read()

History