Compare commits
	
		
			1 Commits
		
	
	
		
			c136cee393
			...
			0e8e8a9803
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					0e8e8a9803 | 
							
								
								
									
										120
									
								
								Code/DataStructureManipulations.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								Code/DataStructureManipulations.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,120 @@
 | 
				
			|||||||
 | 
					from sys import platform as OperatingSystem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Quotes = '"\''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if OperatingSystem == "win32":
 | 
				
			||||||
 | 
					    PathSlash = '\\'
 | 
				
			||||||
 | 
					else:
 | 
				
			||||||
 | 
					    PathSlash = '/'
 | 
				
			||||||
 | 
					FileProtocol = "file:" + 2*PathSlash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def ConvertToStandardPathFormat(Path):
 | 
				
			||||||
 | 
					    """ Example,
 | 
				
			||||||
 | 
					    Input: '"file:///some/path/somefile.extension"
 | 
				
			||||||
 | 
					    Output: /some/path/somefile.extension
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    Path = Path.strip(Quotes)
 | 
				
			||||||
 | 
					    if Path.startswith(FileProtocol):
 | 
				
			||||||
 | 
					        Path = Path[len(FileProtocol):]
 | 
				
			||||||
 | 
					    return Path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def GetTextAfter(Text, ReadlinesTextFile):
 | 
				
			||||||
 | 
					    for Lines in range(len(ReadlinesTextFile)):
 | 
				
			||||||
 | 
					        Line = ReadlinesTextFile[Lines].strip('\n')
 | 
				
			||||||
 | 
					        if Line.startswith(Text):
 | 
				
			||||||
 | 
					            return Line[len(Text):]
 | 
				
			||||||
 | 
					    return ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def SingleQuoteString(String):
 | 
				
			||||||
 | 
					    if len(String) > 0:
 | 
				
			||||||
 | 
					        if String[0] != '\'' or String[-1] != '\'':
 | 
				
			||||||
 | 
					            String = '\'' + String + '\''
 | 
				
			||||||
 | 
					    return String
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def DoubleQuoteString(String):
 | 
				
			||||||
 | 
					    if len(String) > 0:
 | 
				
			||||||
 | 
					        if String[0] != '"' or String[-1] != '"':
 | 
				
			||||||
 | 
					            String = '"' + String + '"'
 | 
				
			||||||
 | 
					    return String
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def ListIntoString(List, QuoteItems=0, Seprator=' '):
 | 
				
			||||||
 | 
					    if QuoteItems == 2:
 | 
				
			||||||
 | 
					        for i in range(len(List)):
 | 
				
			||||||
 | 
					            Quoteditem = DoubleQuoteString(List[i])
 | 
				
			||||||
 | 
					            List[i] = Quoteditem
 | 
				
			||||||
 | 
					    elif QuoteItems == 1:
 | 
				
			||||||
 | 
					        for i in range(len(List)):
 | 
				
			||||||
 | 
					            Quoteditem = SingleQuoteString(List[i])
 | 
				
			||||||
 | 
					            List[i] = Quoteditem
 | 
				
			||||||
 | 
					    Stringoflist = (Seprator).join(List)
 | 
				
			||||||
 | 
					    return Stringoflist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# strip=0 => remove both ' & ", 1 => remove ', 2 => remove "
 | 
				
			||||||
 | 
					def UnquoteString(String, strip=0):
 | 
				
			||||||
 | 
					    while True:
 | 
				
			||||||
 | 
					        if (
 | 
				
			||||||
 | 
					            strip != 2 and
 | 
				
			||||||
 | 
					            String.startswith('"') and
 | 
				
			||||||
 | 
					            String.endswith('"')
 | 
				
			||||||
 | 
					            ):
 | 
				
			||||||
 | 
					            String = String.strip('"')
 | 
				
			||||||
 | 
					        elif (
 | 
				
			||||||
 | 
					            strip != 1
 | 
				
			||||||
 | 
					            and String.startswith("'")
 | 
				
			||||||
 | 
					            and String.endswith("'")
 | 
				
			||||||
 | 
					            ):
 | 
				
			||||||
 | 
					            String = String.strip("'")
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            break
 | 
				
			||||||
 | 
					    return String
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def StandardVariableName(Variable):
 | 
				
			||||||
 | 
					    Variable = Variable.casefold()
 | 
				
			||||||
 | 
					    Variable = Variable.replace('_', '').replace(' ', '')
 | 
				
			||||||
 | 
					    return Variable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					def DictionaryToJsonStr(Dict, BaseIndentation=0):
 | 
				
			||||||
 | 
					    BI = '\t'*BaseIndentation
 | 
				
			||||||
 | 
					    JsonStr = BI+'{\n'
 | 
				
			||||||
 | 
					    for k, v in Dict.items():
 | 
				
			||||||
 | 
					        JsonStr += BI+'\t"'+k+'" : "'+v+'",\n'
 | 
				
			||||||
 | 
					    JsonStr = JsonStr[:-2]
 | 
				
			||||||
 | 
					    JsonStr += '\n'+BI+'}'
 | 
				
			||||||
 | 
					    return JsonStr
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def StringToKeyValuePair(String, Seprator):
 | 
				
			||||||
 | 
					    SepratorAt = String.find(Seprator)
 | 
				
			||||||
 | 
					    if SepratorAt >= 0:
 | 
				
			||||||
 | 
					        Key = String[:SepratorAt]
 | 
				
			||||||
 | 
					        Value = String[SepratorAt+1:]
 | 
				
			||||||
 | 
					        return Key, Value
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        return "", String
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def FormatStrForDictinary(String):
 | 
				
			||||||
 | 
					    String = String.strip(" \n\r")
 | 
				
			||||||
 | 
					    return UnquoteString(String)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def StrListToDictionary(
 | 
				
			||||||
 | 
					    List,
 | 
				
			||||||
 | 
					    Seprator='=',
 | 
				
			||||||
 | 
					    FormatFunction=FormatStrForDictinary
 | 
				
			||||||
 | 
					    ):
 | 
				
			||||||
 | 
					    Dictionary = {}
 | 
				
			||||||
 | 
					    for i in List:
 | 
				
			||||||
 | 
					        k, v = StringToKeyValuePair(i, Seprator)
 | 
				
			||||||
 | 
					        k, v = FormatFunction(k), FormatFunction(v)
 | 
				
			||||||
 | 
					        if len(k) > 0:
 | 
				
			||||||
 | 
					            Dictionary[k] = v
 | 
				
			||||||
 | 
					    return Dictionary
 | 
				
			||||||
							
								
								
									
										33
									
								
								Code/InputOutput.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								Code/InputOutput.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					from os.path import isfile as DoesFileExist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from .DataStructureManipulations import ConvertToStandardPathFormat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def ReadTextFile(FilePath):
 | 
				
			||||||
 | 
					    FilePath = ConvertToStandardPathFormat(FilePath)
 | 
				
			||||||
 | 
					    if DoesFileExist(FilePath) is True:
 | 
				
			||||||
 | 
					        File = open(FilePath)
 | 
				
			||||||
 | 
					        ReadFile = File.read()
 | 
				
			||||||
 | 
					        File.close()
 | 
				
			||||||
 | 
					        return ReadFile
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        return ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def ReadlinesTextFile(FilePath):
 | 
				
			||||||
 | 
					    String = ReadTextFile(FilePath)
 | 
				
			||||||
 | 
					    return String.split('\n')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def WriteTextFiles(FilePath, Text):
 | 
				
			||||||
 | 
					    if type(Text) != str:
 | 
				
			||||||
 | 
					        Text = '\n'.join(Text)
 | 
				
			||||||
 | 
					    File = open(FilePath, 'w')
 | 
				
			||||||
 | 
					    File.write(Text)
 | 
				
			||||||
 | 
					    File.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def WriteBinaryToFile(Filepath, Data):
 | 
				
			||||||
 | 
					    File = open(Filepath, 'wb')
 | 
				
			||||||
 | 
					    File.write(Data)
 | 
				
			||||||
 | 
					    File.close()
 | 
				
			||||||
							
								
								
									
										8
									
								
								Code/Network.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Code/Network.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					import ssl
 | 
				
			||||||
 | 
					from urllib.request import urlopen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HttpsContext = ssl.create_default_context()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def Download(Url):
 | 
				
			||||||
 | 
					    return urlopen(Url, context=HttpsContext).read()
 | 
				
			||||||
							
								
								
									
										36
									
								
								Code/OS.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								Code/OS.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					import os
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def CallFuncInDir(Directory, Function, *args, **kwArgs):
 | 
				
			||||||
 | 
					    CurrentDir = os.getcwd()
 | 
				
			||||||
 | 
					    os.chdir(Directory)
 | 
				
			||||||
 | 
					    Function(*args, **kwArgs)
 | 
				
			||||||
 | 
					    os.chdir(CurrentDir)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def CreateDir(Directory):
 | 
				
			||||||
 | 
					    """ return True if operation succesful and False if failed """
 | 
				
			||||||
 | 
					    if not os.path.isfile(Directory):
 | 
				
			||||||
 | 
					        if not os.path.isdir(Directory):
 | 
				
			||||||
 | 
					            os.mkdir(Directory)
 | 
				
			||||||
 | 
					        return True
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def CopyFile(Source, Destination):
 | 
				
			||||||
 | 
					    """ raises exception if fails.
 | 
				
			||||||
 | 
					    Implement exception handling else program will abort.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        # hard link if on same partition
 | 
				
			||||||
 | 
					        os.link(Source, Destination)
 | 
				
			||||||
 | 
					    except FileExistsError:
 | 
				
			||||||
 | 
					        # FIXME: create a function to compare if two files
 | 
				
			||||||
 | 
					        # are same and use it here
 | 
				
			||||||
 | 
					        pass
 | 
				
			||||||
 | 
					    except OSError:
 | 
				
			||||||
 | 
					        # copy if on different partition
 | 
				
			||||||
 | 
					        shutil.copy2(Source, Destination)
 | 
				
			||||||
 | 
					    except Exception as unknownError:
 | 
				
			||||||
 | 
					        raise unknownError
 | 
				
			||||||
							
								
								
									
										0
									
								
								Code/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								Code/__init__.py
									
									
									
									
									
										Normal file
									
								
							@ -1,3 +1,3 @@
 | 
				
			|||||||
# portablecode
 | 
					# Python Portable Code
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Python portable code library which can be used in any program without modification.
 | 
					Python portable code library which can be used in any program without modification. Many are simplified, self-explanatory interface for python standard library features.
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user