Browse Source

Commit with existing codebase

master
Manish 2 years ago
parent
commit
c136cee393
  1. 120
      Code/DataStructureManipulations.py
  2. 33
      Code/InputOutput.py
  3. 8
      Code/Network.py
  4. 36
      Code/OS.py
  5. 0
      Code/__init__.py
  6. 4
      README.md

120
Code/DataStructureManipulations.py

@ -0,0 +1,120 @@ @@ -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

@ -0,0 +1,33 @@ @@ -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

@ -0,0 +1,8 @@ @@ -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

@ -0,0 +1,36 @@ @@ -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

4
README.md

@ -1,3 +1,3 @@ @@ -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…
Cancel
Save