first commit
This commit is contained in:
commit
51aa2b3ca5
2
.idea/.gitignore
vendored
Normal file
2
.idea/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/workspace.xml
|
10
.idea/Sieci.iml
Normal file
10
.idea/Sieci.iml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
7
.idea/misc.xml
Normal file
7
.idea/misc.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="JavaScriptSettings">
|
||||||
|
<option name="languageLevel" value="ES6" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (Sieci)" project-jdk-type="Python SDK" />
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/Sieci.iml" filepath="$PROJECT_DIR$/.idea/Sieci.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
15
client.py
Normal file
15
client.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import socket
|
||||||
|
|
||||||
|
ip = "localhost"
|
||||||
|
port = 8888
|
||||||
|
|
||||||
|
connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
connection.connect((ip, port))
|
||||||
|
while 1:
|
||||||
|
data = connection.recv(8192)
|
||||||
|
data = data.decode("utf-8")
|
||||||
|
print(data)
|
||||||
|
if len(data.split())<1:
|
||||||
|
pass
|
||||||
|
elif data.split()[0] == "CONNECT" or data.split()[0] == "YOUR":
|
||||||
|
connection.sendall(input().encode())
|
9
log.txt
Normal file
9
log.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Connected with 127.0.0.1:49346CONNECT
|
||||||
|
LOGIN marcinOK
|
||||||
|
Connected with 127.0.0.1:49348CONNECT
|
||||||
|
LOGIN ma
|
||||||
|
OK
|
||||||
|
START 0 HANDMAIDEN
|
||||||
|
START 1 BARON
|
||||||
|
YOUR MOVE KING
|
||||||
|
CHOOSE KING 1
|
10
main.py
Normal file
10
main.py
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
cards = [["Guard",1],["Guard",1],["Guard",1],["Guard",1],["Guard",1],["Guard",1],["Guard",1],["Guard",1],["Guard",1],["Guard",1],
|
||||||
|
["Priest",2],["Priest",2],["Priest",2],["Baron",3],["Baron",3],["Baron",3],["Baron",3],["Baron",3],["Handmaiden",4],
|
||||||
|
["Handmaiden",4],["Prince",5],["Prince",5],["King",6],["Countess",7],["Princess",8]]
|
||||||
|
|
||||||
|
import random
|
||||||
|
print(len(cards))
|
||||||
|
l = random.choice(cards)
|
||||||
|
print(l)
|
||||||
|
cards.remove(l)
|
||||||
|
print(len(cards))
|
258
server.py
Normal file
258
server.py
Normal file
@ -0,0 +1,258 @@
|
|||||||
|
import socket
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import random
|
||||||
|
|
||||||
|
gracze =2
|
||||||
|
file = open("log.txt","w+")
|
||||||
|
buff = 8192
|
||||||
|
|
||||||
|
def zap(msg):
|
||||||
|
file.write(msg)
|
||||||
|
|
||||||
|
def logowanie(conn):
|
||||||
|
msg = conn.recv(buff).decode("utf-8")
|
||||||
|
zap(msg)
|
||||||
|
msg2 = msg.split()
|
||||||
|
if msg2[0]=="LOGIN" and len(msg2)>1:
|
||||||
|
return msg[6::]
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
watki = []
|
||||||
|
nazwy = ["GUARD", "PRIEST", "BARON", "HANDMAIDEN", "PRINCE", "KING", "COUNTESS", "PRINCESS"]
|
||||||
|
dousuwania = [["GUARD",1],["PRIEST", 2],["BARON", 3],["HANDMAIDEN",4],["PRINCE", 5],["KING",6],["COUNTESS",7],["PRINCESS",8]]
|
||||||
|
i = 1
|
||||||
|
host = "127.0.0.1"
|
||||||
|
port = 8888 # arbitrary non-privileged port
|
||||||
|
|
||||||
|
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
soc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # SO_REUSEADDR flag tells the kernel to reuse a local socket in TIME_WAIT state, without waiting for its natural timeout to expire
|
||||||
|
print("Socket created")
|
||||||
|
|
||||||
|
try:
|
||||||
|
soc.bind((host, port))
|
||||||
|
except:
|
||||||
|
print("Bind failed. Error : " + str(sys.exc_info()))
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
|
soc.listen(6)
|
||||||
|
print("Socket now listening")
|
||||||
|
|
||||||
|
while i<=gracze: #6
|
||||||
|
connection, address = soc.accept()
|
||||||
|
ip, port = str(address[0]), str(address[1])
|
||||||
|
print("Connected with " + ip + ":" + port)
|
||||||
|
zap("Connected with " + ip + ":" + port)
|
||||||
|
connection.sendall(b'CONNECT\n')
|
||||||
|
zap("CONNECT\n")
|
||||||
|
licznik = 0
|
||||||
|
while licznik < 100:
|
||||||
|
login = logowanie(connection)
|
||||||
|
if login != None:
|
||||||
|
pkt=0
|
||||||
|
watki.append([connection,login,pkt,[],i])
|
||||||
|
i+=1
|
||||||
|
connection.sendall(b'OK\n')
|
||||||
|
zap("OK\n")
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
connection.sendall(b'ERROR\n')
|
||||||
|
zap("ERROR\n")
|
||||||
|
licznik=+1
|
||||||
|
win = 0
|
||||||
|
while 1:
|
||||||
|
for i in watki:
|
||||||
|
if i[2]==4:
|
||||||
|
msg = ("GAME WINNER "+i[1]+"\nFINAL RESULT "+watki[0][1]+" "+watki[0][2]+" "+watki[1][1]+" "+watki[1][2]+" "+watki[2][1]+" "+watki[2][2]+" "+watki[3][1]+" "+watki[3][2]+" "+watki[4][1]+" "+watki[4][2])
|
||||||
|
zap(msg)
|
||||||
|
for j in watki:
|
||||||
|
j[0].sendall(msg.encode())
|
||||||
|
win = 1
|
||||||
|
break
|
||||||
|
if win == 1:
|
||||||
|
break
|
||||||
|
cards = [["GUARD", 1], ["GUARD", 1], ["GUARD", 1], ["GUARD", 1], ["GUARD", 1], ["GUARD", 1], ["GUARD", 1],
|
||||||
|
["GUARD", 1], ["GUARD", 1], ["GUARD", 1],
|
||||||
|
["PRIEST", 2], ["PRIEST", 2], ["PRIEST", 2], ["BARON", 3], ["BARON", 3], ["BARON", 3], ["BARON", 3],
|
||||||
|
["BARON", 3], ["HANDMAIDEN", 4],
|
||||||
|
["HANDMAIDEN", 4], ["PRINCE", 5], ["PRINCE", 5], ["KING", 6], ["COUNTESS", 7], ["PRINCESS", 8]]
|
||||||
|
random.shuffle(watki)
|
||||||
|
numer = 0
|
||||||
|
for i in watki:
|
||||||
|
i[4] = numer
|
||||||
|
numer+=1
|
||||||
|
card = random.choice(cards)
|
||||||
|
cards.remove(card)
|
||||||
|
msg = ('START '+str(i[4])+' '+card[0]+'\n')
|
||||||
|
zap(msg)
|
||||||
|
i[0].sendall(msg.encode())
|
||||||
|
i[3] = [card]
|
||||||
|
maiden = []
|
||||||
|
out = []
|
||||||
|
while 1:
|
||||||
|
if len(cards) == 0:
|
||||||
|
msg = ("ROUND END\nROUND RESULT " + watki[0][1] + " "+watki[0][2]+" "+watki[1][1]+" "+watki[1][2]+" "+watki[2][1]+" "+watki[2][2]+" "+watki[3][1]+" "+watki[3][2]+" "+watki[4][1]+" "+watki[4][2])
|
||||||
|
zap(msg)
|
||||||
|
for kk in watki:
|
||||||
|
kk[0].sendall(msg.encode())
|
||||||
|
|
||||||
|
skip = []
|
||||||
|
for i in watki:
|
||||||
|
if i[4] in out:
|
||||||
|
continue
|
||||||
|
if i[4] in skip:
|
||||||
|
skip.remove(i[4])
|
||||||
|
continue
|
||||||
|
card = random.choice(cards)
|
||||||
|
cards.remove(card)
|
||||||
|
i[3].append(card)
|
||||||
|
msg = ('YOUR MOVE '+card[0]+'\n')
|
||||||
|
zap(msg)
|
||||||
|
i[0].sendall(msg.encode())
|
||||||
|
licznik=0
|
||||||
|
reka = []
|
||||||
|
for j in i[3]:
|
||||||
|
reka.append(j[0]) #tymczasowo zapisujemy swoja reke
|
||||||
|
while 1:
|
||||||
|
msg = i[0].recv(buff).decode("utf-8")
|
||||||
|
zap(msg)
|
||||||
|
msgOrg = msg
|
||||||
|
msg = msg.split()
|
||||||
|
# print(msg)
|
||||||
|
if ("KING" in reka and "COUNTESS" in reka)or("PRINCE" in reka and "COUNTESS" in reka):
|
||||||
|
msg="CHOOSE COUNTESS"
|
||||||
|
i[0].sendall(msg.encode())
|
||||||
|
i[3].remove(dousuwania[6])
|
||||||
|
continue
|
||||||
|
if len(msg)<=1:
|
||||||
|
i[0].sendall(b'ERROR\n')
|
||||||
|
zap("ERROR\n")
|
||||||
|
elif msg[0] == "CHOOSE" and len(msg)>=1:
|
||||||
|
if msg[1] not in reka:
|
||||||
|
i[0].sendall(b'ERROR\n')
|
||||||
|
zap("ERROR\n")
|
||||||
|
elif msg[1] == "GUARD" and len(msg)>3:
|
||||||
|
try:
|
||||||
|
t = int(msg[2])
|
||||||
|
if msg[3] == "GUARD" or msg[3] not in nazwy:
|
||||||
|
i[0].sendall(b'ERROR\n')
|
||||||
|
zap("ERROR\n")
|
||||||
|
elif t in range(numer+1) and t not in out and t not in maiden:
|
||||||
|
i[0].sendall(b'OK\n')
|
||||||
|
i[3].remove(dousuwania[0])
|
||||||
|
zap("OK\n")
|
||||||
|
tmp = []
|
||||||
|
for tt in watki[t][3]:
|
||||||
|
tmp.append(tt[0])
|
||||||
|
if msg[3] in tmp:
|
||||||
|
out.append(msg[2])
|
||||||
|
msg = ("ELIMINATED " + str(i[4])+"\n")
|
||||||
|
zap(msg)
|
||||||
|
for ll in watki:
|
||||||
|
ll[0].sendall(msg.encode())
|
||||||
|
break
|
||||||
|
except ValueError:
|
||||||
|
i[0].sendall(b'ERROR\n')
|
||||||
|
zap("ERROR\n")
|
||||||
|
|
||||||
|
elif msg[1] == "PRIEST" and len(msg)>2:
|
||||||
|
try:
|
||||||
|
t = int(msg[2])
|
||||||
|
if t in range(numer+2) and t not in out and t not in maiden:
|
||||||
|
skip.append(t)
|
||||||
|
i[3].remove(dousuwania[1])
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
i[0].sendall(b'ERROR\n')
|
||||||
|
zap("ERROR")
|
||||||
|
except ValueError:
|
||||||
|
i[0].sendall(b'ERROR\n')
|
||||||
|
zap("ERROR")
|
||||||
|
elif msg[1] == "BARON":
|
||||||
|
if msg[2] in kolejka:
|
||||||
|
pass
|
||||||
|
elif msg[1] == "HANDMAIDEN":
|
||||||
|
maiden.append(i[4])
|
||||||
|
i[0].sendall(b'OK\n')
|
||||||
|
i[3].remove(dousuwania[3])
|
||||||
|
elif msg[1] == "PRINCE":
|
||||||
|
try:
|
||||||
|
t = int(msg[2])
|
||||||
|
if t in maiden:
|
||||||
|
i[3].remove(dousuwania[4])
|
||||||
|
i[0].sendall(b'OK\n')
|
||||||
|
break
|
||||||
|
if "PRINCESS" in watki[t][3][0]:
|
||||||
|
i[3].remove(dousuwania[4])
|
||||||
|
out.append(t)
|
||||||
|
msg = ("ELIMINATED " + str(i[4])+"\n")
|
||||||
|
zap(msg)
|
||||||
|
for ll in watki:
|
||||||
|
ll[0].sendall(msg.encode())
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
watki[t][3]=[]
|
||||||
|
if len(cards) == 0:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
i[3].remove(dousuwania[4])
|
||||||
|
card = random.choice(cards)
|
||||||
|
watki[t][3].append(card)
|
||||||
|
cards.remove(card)
|
||||||
|
watki[t][0].sendall(("New card "+card+" "+str(watki[t][4])).encode())
|
||||||
|
except ValueError:
|
||||||
|
i[0].sendall(b'ERROR\n')
|
||||||
|
zap("ERROR\n")
|
||||||
|
elif msg[1] == "KING" and len(msg)>1:
|
||||||
|
try:
|
||||||
|
t = int(msg[2])
|
||||||
|
if t in range(numer+1) and t not in out and t not in maiden:
|
||||||
|
i[3].remove(dousuwania[5])
|
||||||
|
tmp = i[3]
|
||||||
|
i[3] = watki[t][3]
|
||||||
|
i[0].sendall(watki[t][3][0].encode())
|
||||||
|
watki[t][3] = tmp
|
||||||
|
i[0].sendall(tmp[0].encode())
|
||||||
|
i[0].sendall(b'OK\n')
|
||||||
|
|
||||||
|
else:
|
||||||
|
i[0].sendall(b'ERROR\n')
|
||||||
|
zap("ERROR\n")
|
||||||
|
except ValueError:
|
||||||
|
i[0].sendall(b'ERROR\n')
|
||||||
|
zap("ERROR\n")
|
||||||
|
elif msg[1] == "PRINCESS":
|
||||||
|
i[0].sendall(b'OK\n')
|
||||||
|
out.append(i[4])
|
||||||
|
msg = ("ELIMINATED "+str(i[4])+"\n")
|
||||||
|
zap(msg)
|
||||||
|
for ll in watki:
|
||||||
|
ll[0].sendall(msg.encode())
|
||||||
|
else:
|
||||||
|
licznik+=1
|
||||||
|
print(licznik)
|
||||||
|
if licznik == 100:
|
||||||
|
kolejka.remove(i)
|
||||||
|
break
|
||||||
|
for k in watki:
|
||||||
|
msgOrg = "MOVE "+msgOrg[7::]
|
||||||
|
k[0].sendall(msgOrg.encode())
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
i[0].sendall(b'ERROR\n')
|
||||||
|
licznik=+1
|
||||||
|
if licznik == 100:
|
||||||
|
kolejka.remove(i)
|
||||||
|
break
|
||||||
|
if len(out) ==gracze-1:
|
||||||
|
for l in watki:
|
||||||
|
if l[4] not in out:
|
||||||
|
l[2] = +1
|
||||||
|
msg = ("ROUND WINNER " + str(l[1]) + "\nROUND RESULT " + str(watki[0][1]) + " " + str(watki[0][2]) + " " +
|
||||||
|
str(watki[1][1]) + " " + str(watki[1][2])) #+ " " + str(watki[2][1]) + " " + str(watki[2][2]) + " " +
|
||||||
|
# str(watki[3][1]) + " " + str(watki[3][2]) + " " + str(watki[4][1]) + " " + str(watki[4][2]))
|
||||||
|
zap(msg)
|
||||||
|
ll[0].sendall(msg.encode())
|
||||||
|
break
|
||||||
|
break
|
76
venv/bin/activate
Normal file
76
venv/bin/activate
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
# This file must be used with "source bin/activate" *from bash*
|
||||||
|
# you cannot run it directly
|
||||||
|
|
||||||
|
deactivate () {
|
||||||
|
# reset old environment variables
|
||||||
|
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
|
||||||
|
PATH="${_OLD_VIRTUAL_PATH:-}"
|
||||||
|
export PATH
|
||||||
|
unset _OLD_VIRTUAL_PATH
|
||||||
|
fi
|
||||||
|
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
|
||||||
|
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
|
||||||
|
export PYTHONHOME
|
||||||
|
unset _OLD_VIRTUAL_PYTHONHOME
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This should detect bash and zsh, which have a hash command that must
|
||||||
|
# be called to get it to forget past commands. Without forgetting
|
||||||
|
# past commands the $PATH changes we made may not be respected
|
||||||
|
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
|
||||||
|
hash -r
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
|
||||||
|
PS1="${_OLD_VIRTUAL_PS1:-}"
|
||||||
|
export PS1
|
||||||
|
unset _OLD_VIRTUAL_PS1
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset VIRTUAL_ENV
|
||||||
|
if [ ! "$1" = "nondestructive" ] ; then
|
||||||
|
# Self destruct!
|
||||||
|
unset -f deactivate
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# unset irrelevant variables
|
||||||
|
deactivate nondestructive
|
||||||
|
|
||||||
|
VIRTUAL_ENV="/home/marcin/PycharmProjects/Sieci/venv"
|
||||||
|
export VIRTUAL_ENV
|
||||||
|
|
||||||
|
_OLD_VIRTUAL_PATH="$PATH"
|
||||||
|
PATH="$VIRTUAL_ENV/bin:$PATH"
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
# unset PYTHONHOME if set
|
||||||
|
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
|
||||||
|
# could use `if (set -u; : $PYTHONHOME) ;` in bash
|
||||||
|
if [ -n "${PYTHONHOME:-}" ] ; then
|
||||||
|
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
|
||||||
|
unset PYTHONHOME
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
|
||||||
|
_OLD_VIRTUAL_PS1="${PS1:-}"
|
||||||
|
if [ "x(venv) " != x ] ; then
|
||||||
|
PS1="(venv) ${PS1:-}"
|
||||||
|
else
|
||||||
|
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
|
||||||
|
# special case for Aspen magic directories
|
||||||
|
# see http://www.zetadev.com/software/aspen/
|
||||||
|
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
|
||||||
|
else
|
||||||
|
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
export PS1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This should detect bash and zsh, which have a hash command that must
|
||||||
|
# be called to get it to forget past commands. Without forgetting
|
||||||
|
# past commands the $PATH changes we made may not be respected
|
||||||
|
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
|
||||||
|
hash -r
|
||||||
|
fi
|
37
venv/bin/activate.csh
Normal file
37
venv/bin/activate.csh
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# This file must be used with "source bin/activate.csh" *from csh*.
|
||||||
|
# You cannot run it directly.
|
||||||
|
# Created by Davide Di Blasi <davidedb@gmail.com>.
|
||||||
|
# Ported to Python 3.3 venv by Andrew Svetlov <andrew.svetlov@gmail.com>
|
||||||
|
|
||||||
|
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate'
|
||||||
|
|
||||||
|
# Unset irrelevant variables.
|
||||||
|
deactivate nondestructive
|
||||||
|
|
||||||
|
setenv VIRTUAL_ENV "/home/marcin/PycharmProjects/Sieci/venv"
|
||||||
|
|
||||||
|
set _OLD_VIRTUAL_PATH="$PATH"
|
||||||
|
setenv PATH "$VIRTUAL_ENV/bin:$PATH"
|
||||||
|
|
||||||
|
|
||||||
|
set _OLD_VIRTUAL_PROMPT="$prompt"
|
||||||
|
|
||||||
|
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
|
||||||
|
if ("venv" != "") then
|
||||||
|
set env_name = "venv"
|
||||||
|
else
|
||||||
|
if (`basename "VIRTUAL_ENV"` == "__") then
|
||||||
|
# special case for Aspen magic directories
|
||||||
|
# see http://www.zetadev.com/software/aspen/
|
||||||
|
set env_name = `basename \`dirname "$VIRTUAL_ENV"\``
|
||||||
|
else
|
||||||
|
set env_name = `basename "$VIRTUAL_ENV"`
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
set prompt = "[$env_name] $prompt"
|
||||||
|
unset env_name
|
||||||
|
endif
|
||||||
|
|
||||||
|
alias pydoc python -m pydoc
|
||||||
|
|
||||||
|
rehash
|
75
venv/bin/activate.fish
Normal file
75
venv/bin/activate.fish
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
# This file must be used with ". bin/activate.fish" *from fish* (http://fishshell.org)
|
||||||
|
# you cannot run it directly
|
||||||
|
|
||||||
|
function deactivate -d "Exit virtualenv and return to normal shell environment"
|
||||||
|
# reset old environment variables
|
||||||
|
if test -n "$_OLD_VIRTUAL_PATH"
|
||||||
|
set -gx PATH $_OLD_VIRTUAL_PATH
|
||||||
|
set -e _OLD_VIRTUAL_PATH
|
||||||
|
end
|
||||||
|
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
|
||||||
|
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
|
||||||
|
set -e _OLD_VIRTUAL_PYTHONHOME
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
|
||||||
|
functions -e fish_prompt
|
||||||
|
set -e _OLD_FISH_PROMPT_OVERRIDE
|
||||||
|
functions -c _old_fish_prompt fish_prompt
|
||||||
|
functions -e _old_fish_prompt
|
||||||
|
end
|
||||||
|
|
||||||
|
set -e VIRTUAL_ENV
|
||||||
|
if test "$argv[1]" != "nondestructive"
|
||||||
|
# Self destruct!
|
||||||
|
functions -e deactivate
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# unset irrelevant variables
|
||||||
|
deactivate nondestructive
|
||||||
|
|
||||||
|
set -gx VIRTUAL_ENV "/home/marcin/PycharmProjects/Sieci/venv"
|
||||||
|
|
||||||
|
set -gx _OLD_VIRTUAL_PATH $PATH
|
||||||
|
set -gx PATH "$VIRTUAL_ENV/bin" $PATH
|
||||||
|
|
||||||
|
# unset PYTHONHOME if set
|
||||||
|
if set -q PYTHONHOME
|
||||||
|
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
|
||||||
|
set -e PYTHONHOME
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
|
||||||
|
# fish uses a function instead of an env var to generate the prompt.
|
||||||
|
|
||||||
|
# save the current fish_prompt function as the function _old_fish_prompt
|
||||||
|
functions -c fish_prompt _old_fish_prompt
|
||||||
|
|
||||||
|
# with the original prompt function renamed, we can override with our own.
|
||||||
|
function fish_prompt
|
||||||
|
# Save the return status of the last command
|
||||||
|
set -l old_status $status
|
||||||
|
|
||||||
|
# Prompt override?
|
||||||
|
if test -n "(venv) "
|
||||||
|
printf "%s%s" "(venv) " (set_color normal)
|
||||||
|
else
|
||||||
|
# ...Otherwise, prepend env
|
||||||
|
set -l _checkbase (basename "$VIRTUAL_ENV")
|
||||||
|
if test $_checkbase = "__"
|
||||||
|
# special case for Aspen magic directories
|
||||||
|
# see http://www.zetadev.com/software/aspen/
|
||||||
|
printf "%s[%s]%s " (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal)
|
||||||
|
else
|
||||||
|
printf "%s(%s)%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Restore the return status of the previous command.
|
||||||
|
echo "exit $old_status" | .
|
||||||
|
_old_fish_prompt
|
||||||
|
end
|
||||||
|
|
||||||
|
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
|
||||||
|
end
|
10
venv/bin/chardetect
Executable file
10
venv/bin/chardetect
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/home/marcin/PycharmProjects/Sieci/venv/bin/python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from chardet.cli.chardetect import main
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(main())
|
12
venv/bin/easy_install
Executable file
12
venv/bin/easy_install
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/home/marcin/PycharmProjects/Sieci/venv/bin/python
|
||||||
|
# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==40.8.0','console_scripts','easy_install'
|
||||||
|
__requires__ = 'setuptools==40.8.0'
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from pkg_resources import load_entry_point
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(
|
||||||
|
load_entry_point('setuptools==40.8.0', 'console_scripts', 'easy_install')()
|
||||||
|
)
|
12
venv/bin/easy_install-3.7
Executable file
12
venv/bin/easy_install-3.7
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/home/marcin/PycharmProjects/Sieci/venv/bin/python
|
||||||
|
# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==40.8.0','console_scripts','easy_install-3.7'
|
||||||
|
__requires__ = 'setuptools==40.8.0'
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from pkg_resources import load_entry_point
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(
|
||||||
|
load_entry_point('setuptools==40.8.0', 'console_scripts', 'easy_install-3.7')()
|
||||||
|
)
|
10
venv/bin/flask
Executable file
10
venv/bin/flask
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/home/marcin/PycharmProjects/Sieci/venv/bin/python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from flask.cli import main
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(main())
|
12
venv/bin/pip
Executable file
12
venv/bin/pip
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/home/marcin/PycharmProjects/Sieci/venv/bin/python
|
||||||
|
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip'
|
||||||
|
__requires__ = 'pip==19.0.3'
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from pkg_resources import load_entry_point
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(
|
||||||
|
load_entry_point('pip==19.0.3', 'console_scripts', 'pip')()
|
||||||
|
)
|
12
venv/bin/pip3
Executable file
12
venv/bin/pip3
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/home/marcin/PycharmProjects/Sieci/venv/bin/python
|
||||||
|
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip3'
|
||||||
|
__requires__ = 'pip==19.0.3'
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from pkg_resources import load_entry_point
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(
|
||||||
|
load_entry_point('pip==19.0.3', 'console_scripts', 'pip3')()
|
||||||
|
)
|
12
venv/bin/pip3.7
Executable file
12
venv/bin/pip3.7
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/home/marcin/PycharmProjects/Sieci/venv/bin/python
|
||||||
|
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip3.7'
|
||||||
|
__requires__ = 'pip==19.0.3'
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from pkg_resources import load_entry_point
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(
|
||||||
|
load_entry_point('pip==19.0.3', 'console_scripts', 'pip3.7')()
|
||||||
|
)
|
BIN
venv/bin/python
Executable file
BIN
venv/bin/python
Executable file
Binary file not shown.
BIN
venv/bin/python3
Executable file
BIN
venv/bin/python3
Executable file
Binary file not shown.
BIN
venv/bin/python3.7
Executable file
BIN
venv/bin/python3.7
Executable file
Binary file not shown.
12
venv/bin/watchmedo
Executable file
12
venv/bin/watchmedo
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/home/marcin/PycharmProjects/Sieci/venv/bin/python
|
||||||
|
# EASY-INSTALL-ENTRY-SCRIPT: 'watchdog==0.10.0','console_scripts','watchmedo'
|
||||||
|
__requires__ = 'watchdog==0.10.0'
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from pkg_resources import load_entry_point
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(
|
||||||
|
load_entry_point('watchdog==0.10.0', 'console_scripts', 'watchmedo')()
|
||||||
|
)
|
@ -0,0 +1 @@
|
|||||||
|
pip
|
@ -0,0 +1,39 @@
|
|||||||
|
Copyright © 2014 by the Pallets team.
|
||||||
|
|
||||||
|
Some rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms of the software as
|
||||||
|
well as documentation, 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.
|
||||||
|
|
||||||
|
- 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.
|
||||||
|
|
||||||
|
- Neither the name of the copyright holder 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 AND DOCUMENTATION 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 HOLDER 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 AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGE.
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
Click uses parts of optparse written by Gregory P. Ward and maintained
|
||||||
|
by the Python Software Foundation. This is limited to code in parser.py.
|
||||||
|
|
||||||
|
Copyright © 2001-2006 Gregory P. Ward. All rights reserved.
|
||||||
|
Copyright © 2002-2006 Python Software Foundation. All rights reserved.
|
121
venv/lib/python3.7/site-packages/Click-7.0.dist-info/METADATA
Normal file
121
venv/lib/python3.7/site-packages/Click-7.0.dist-info/METADATA
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
Metadata-Version: 2.1
|
||||||
|
Name: Click
|
||||||
|
Version: 7.0
|
||||||
|
Summary: Composable command line interface toolkit
|
||||||
|
Home-page: https://palletsprojects.com/p/click/
|
||||||
|
Author: Armin Ronacher
|
||||||
|
Author-email: armin.ronacher@active-4.com
|
||||||
|
Maintainer: Pallets Team
|
||||||
|
Maintainer-email: contact@palletsprojects.com
|
||||||
|
License: BSD
|
||||||
|
Project-URL: Documentation, https://click.palletsprojects.com/
|
||||||
|
Project-URL: Code, https://github.com/pallets/click
|
||||||
|
Project-URL: Issue tracker, https://github.com/pallets/click/issues
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Development Status :: 5 - Production/Stable
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: License :: OSI Approved :: BSD License
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Classifier: Programming Language :: Python
|
||||||
|
Classifier: Programming Language :: Python :: 2
|
||||||
|
Classifier: Programming Language :: Python :: 2.7
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: Programming Language :: Python :: 3.4
|
||||||
|
Classifier: Programming Language :: Python :: 3.5
|
||||||
|
Classifier: Programming Language :: Python :: 3.6
|
||||||
|
Classifier: Programming Language :: Python :: 3.7
|
||||||
|
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
|
||||||
|
|
||||||
|
\$ click\_
|
||||||
|
==========
|
||||||
|
|
||||||
|
Click is a Python package for creating beautiful command line interfaces
|
||||||
|
in a composable way with as little code as necessary. It's the "Command
|
||||||
|
Line Interface Creation Kit". It's highly configurable but comes with
|
||||||
|
sensible defaults out of the box.
|
||||||
|
|
||||||
|
It aims to make the process of writing command line tools quick and fun
|
||||||
|
while also preventing any frustration caused by the inability to
|
||||||
|
implement an intended CLI API.
|
||||||
|
|
||||||
|
Click in three points:
|
||||||
|
|
||||||
|
- Arbitrary nesting of commands
|
||||||
|
- Automatic help page generation
|
||||||
|
- Supports lazy loading of subcommands at runtime
|
||||||
|
|
||||||
|
|
||||||
|
Installing
|
||||||
|
----------
|
||||||
|
|
||||||
|
Install and update using `pip`_:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ pip install click
|
||||||
|
|
||||||
|
Click supports Python 3.4 and newer, Python 2.7, and PyPy.
|
||||||
|
|
||||||
|
.. _pip: https://pip.pypa.io/en/stable/quickstart/
|
||||||
|
|
||||||
|
|
||||||
|
A Simple Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
What does it look like? Here is an example of a simple Click program:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
import click
|
||||||
|
|
||||||
|
@click.command()
|
||||||
|
@click.option("--count", default=1, help="Number of greetings.")
|
||||||
|
@click.option("--name", prompt="Your name",
|
||||||
|
help="The person to greet.")
|
||||||
|
def hello(count, name):
|
||||||
|
"""Simple program that greets NAME for a total of COUNT times."""
|
||||||
|
for _ in range(count):
|
||||||
|
click.echo("Hello, %s!" % name)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
hello()
|
||||||
|
|
||||||
|
And what it looks like when run:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ python hello.py --count=3
|
||||||
|
Your name: Click
|
||||||
|
Hello, Click!
|
||||||
|
Hello, Click!
|
||||||
|
Hello, Click!
|
||||||
|
|
||||||
|
|
||||||
|
Donate
|
||||||
|
------
|
||||||
|
|
||||||
|
The Pallets organization develops and supports Click and other popular
|
||||||
|
packages. In order to grow the community of contributors and users, and
|
||||||
|
allow the maintainers to devote more time to the projects, `please
|
||||||
|
donate today`_.
|
||||||
|
|
||||||
|
.. _please donate today: https://palletsprojects.com/donate
|
||||||
|
|
||||||
|
|
||||||
|
Links
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Website: https://palletsprojects.com/p/click/
|
||||||
|
* Documentation: https://click.palletsprojects.com/
|
||||||
|
* License: `BSD <https://github.com/pallets/click/blob/master/LICENSE.rst>`_
|
||||||
|
* Releases: https://pypi.org/project/click/
|
||||||
|
* Code: https://github.com/pallets/click
|
||||||
|
* Issue tracker: https://github.com/pallets/click/issues
|
||||||
|
* Test status:
|
||||||
|
|
||||||
|
* Linux, Mac: https://travis-ci.org/pallets/click
|
||||||
|
* Windows: https://ci.appveyor.com/project/pallets/click
|
||||||
|
|
||||||
|
* Test coverage: https://codecov.io/gh/pallets/click
|
||||||
|
|
||||||
|
|
40
venv/lib/python3.7/site-packages/Click-7.0.dist-info/RECORD
Normal file
40
venv/lib/python3.7/site-packages/Click-7.0.dist-info/RECORD
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Click-7.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
Click-7.0.dist-info/LICENSE.txt,sha256=4hIxn676T0Wcisk3_chVcECjyrivKTZsoqSNI5AlIlw,1876
|
||||||
|
Click-7.0.dist-info/METADATA,sha256=-r8jeke3Zer4diRvT1MjFZuiJ6yTT_qFP39svLqdaLI,3516
|
||||||
|
Click-7.0.dist-info/RECORD,,
|
||||||
|
Click-7.0.dist-info/WHEEL,sha256=gduuPyBvFJQSQ0zdyxF7k0zynDXbIbvg5ZBHoXum5uk,110
|
||||||
|
Click-7.0.dist-info/top_level.txt,sha256=J1ZQogalYS4pphY_lPECoNMfw0HzTSrZglC4Yfwo4xA,6
|
||||||
|
click/__init__.py,sha256=HjGThQ7tef9kkwCV371TBnrf0SAi6fKfU_jtEnbYTvQ,2789
|
||||||
|
click/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
click/__pycache__/_bashcomplete.cpython-37.pyc,,
|
||||||
|
click/__pycache__/_compat.cpython-37.pyc,,
|
||||||
|
click/__pycache__/_termui_impl.cpython-37.pyc,,
|
||||||
|
click/__pycache__/_textwrap.cpython-37.pyc,,
|
||||||
|
click/__pycache__/_unicodefun.cpython-37.pyc,,
|
||||||
|
click/__pycache__/_winconsole.cpython-37.pyc,,
|
||||||
|
click/__pycache__/core.cpython-37.pyc,,
|
||||||
|
click/__pycache__/decorators.cpython-37.pyc,,
|
||||||
|
click/__pycache__/exceptions.cpython-37.pyc,,
|
||||||
|
click/__pycache__/formatting.cpython-37.pyc,,
|
||||||
|
click/__pycache__/globals.cpython-37.pyc,,
|
||||||
|
click/__pycache__/parser.cpython-37.pyc,,
|
||||||
|
click/__pycache__/termui.cpython-37.pyc,,
|
||||||
|
click/__pycache__/testing.cpython-37.pyc,,
|
||||||
|
click/__pycache__/types.cpython-37.pyc,,
|
||||||
|
click/__pycache__/utils.cpython-37.pyc,,
|
||||||
|
click/_bashcomplete.py,sha256=iaNUmtxag0YPfxba3TDYCNietiTMQIrvhRLj-H8okFU,11014
|
||||||
|
click/_compat.py,sha256=vYmvoj4opPxo-c-2GMQQjYT_r_QkOKybkfGoeVrt0dA,23399
|
||||||
|
click/_termui_impl.py,sha256=xHmLtOJhKUCVD6168yucJ9fknUJPAMs0eUTPgVUO-GQ,19611
|
||||||
|
click/_textwrap.py,sha256=gwS4m7bdQiJnzaDG8osFcRb-5vn4t4l2qSCy-5csCEc,1198
|
||||||
|
click/_unicodefun.py,sha256=QHy2_5jYlX-36O-JVrTHNnHOqg8tquUR0HmQFev7Ics,4364
|
||||||
|
click/_winconsole.py,sha256=PPWVak8Iikm_gAPsxMrzwsVFCvHgaW3jPaDWZ1JBl3U,8965
|
||||||
|
click/core.py,sha256=q8FLcDZsagBGSRe5Y9Hi_FGvAeZvusNfoO5EkhkSQ8Y,75305
|
||||||
|
click/decorators.py,sha256=idKt6duLUUfAFftrHoREi8MJSd39XW36pUVHthdglwk,11226
|
||||||
|
click/exceptions.py,sha256=CNpAjBAE7qjaV4WChxQeak95e5yUOau8AsvT-8m6wss,7663
|
||||||
|
click/formatting.py,sha256=eh-cypTUAhpI3HD-K4ZpR3vCiURIO62xXvKkR3tNUTM,8889
|
||||||
|
click/globals.py,sha256=oQkou3ZQ5DgrbVM6BwIBirwiqozbjfirzsLGAlLRRdg,1514
|
||||||
|
click/parser.py,sha256=m-nGZz4VwprM42_qtFlWFGo7yRJQxkBlRcZodoH593Y,15510
|
||||||
|
click/termui.py,sha256=o_ZXB2jyvL2Rce7P_bFGq452iyBq9ykJyRApIPMCZO0,23207
|
||||||
|
click/testing.py,sha256=aYGqY_iWLu2p4k7lkuJ6t3fqpf6aPGqTsyLzNY_ngKg,13062
|
||||||
|
click/types.py,sha256=2Q929p-aBP_ZYuMFJqJR-Ipucofv3fmDc5JzBDPmzJU,23287
|
||||||
|
click/utils.py,sha256=6-D0WkAxvv9FkgHXSHwDIv0l9Gdx9Mm6Z5vuKNLIfZI,15763
|
@ -0,0 +1,6 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.31.1)
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py2-none-any
|
||||||
|
Tag: py3-none-any
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
click
|
@ -0,0 +1 @@
|
|||||||
|
pip
|
@ -0,0 +1,28 @@
|
|||||||
|
Copyright 2010 Pallets
|
||||||
|
|
||||||
|
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. Neither the name of the copyright holder 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
|
||||||
|
HOLDER 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.
|
134
venv/lib/python3.7/site-packages/Flask-1.1.1.dist-info/METADATA
Normal file
134
venv/lib/python3.7/site-packages/Flask-1.1.1.dist-info/METADATA
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
Metadata-Version: 2.1
|
||||||
|
Name: Flask
|
||||||
|
Version: 1.1.1
|
||||||
|
Summary: A simple framework for building complex web applications.
|
||||||
|
Home-page: https://palletsprojects.com/p/flask/
|
||||||
|
Author: Armin Ronacher
|
||||||
|
Author-email: armin.ronacher@active-4.com
|
||||||
|
Maintainer: Pallets
|
||||||
|
Maintainer-email: contact@palletsprojects.com
|
||||||
|
License: BSD-3-Clause
|
||||||
|
Project-URL: Documentation, https://flask.palletsprojects.com/
|
||||||
|
Project-URL: Code, https://github.com/pallets/flask
|
||||||
|
Project-URL: Issue tracker, https://github.com/pallets/flask/issues
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Development Status :: 5 - Production/Stable
|
||||||
|
Classifier: Environment :: Web Environment
|
||||||
|
Classifier: Framework :: Flask
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: License :: OSI Approved :: BSD License
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Classifier: Programming Language :: Python
|
||||||
|
Classifier: Programming Language :: Python :: 2
|
||||||
|
Classifier: Programming Language :: Python :: 2.7
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: Programming Language :: Python :: 3.5
|
||||||
|
Classifier: Programming Language :: Python :: 3.6
|
||||||
|
Classifier: Programming Language :: Python :: 3.7
|
||||||
|
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
||||||
|
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
|
||||||
|
Requires-Dist: Werkzeug (>=0.15)
|
||||||
|
Requires-Dist: Jinja2 (>=2.10.1)
|
||||||
|
Requires-Dist: itsdangerous (>=0.24)
|
||||||
|
Requires-Dist: click (>=5.1)
|
||||||
|
Provides-Extra: dev
|
||||||
|
Requires-Dist: pytest ; extra == 'dev'
|
||||||
|
Requires-Dist: coverage ; extra == 'dev'
|
||||||
|
Requires-Dist: tox ; extra == 'dev'
|
||||||
|
Requires-Dist: sphinx ; extra == 'dev'
|
||||||
|
Requires-Dist: pallets-sphinx-themes ; extra == 'dev'
|
||||||
|
Requires-Dist: sphinxcontrib-log-cabinet ; extra == 'dev'
|
||||||
|
Requires-Dist: sphinx-issues ; extra == 'dev'
|
||||||
|
Provides-Extra: docs
|
||||||
|
Requires-Dist: sphinx ; extra == 'docs'
|
||||||
|
Requires-Dist: pallets-sphinx-themes ; extra == 'docs'
|
||||||
|
Requires-Dist: sphinxcontrib-log-cabinet ; extra == 'docs'
|
||||||
|
Requires-Dist: sphinx-issues ; extra == 'docs'
|
||||||
|
Provides-Extra: dotenv
|
||||||
|
Requires-Dist: python-dotenv ; extra == 'dotenv'
|
||||||
|
|
||||||
|
Flask
|
||||||
|
=====
|
||||||
|
|
||||||
|
Flask is a lightweight `WSGI`_ web application framework. It is designed
|
||||||
|
to make getting started quick and easy, with the ability to scale up to
|
||||||
|
complex applications. It began as a simple wrapper around `Werkzeug`_
|
||||||
|
and `Jinja`_ and has become one of the most popular Python web
|
||||||
|
application frameworks.
|
||||||
|
|
||||||
|
Flask offers suggestions, but doesn't enforce any dependencies or
|
||||||
|
project layout. It is up to the developer to choose the tools and
|
||||||
|
libraries they want to use. There are many extensions provided by the
|
||||||
|
community that make adding new functionality easy.
|
||||||
|
|
||||||
|
|
||||||
|
Installing
|
||||||
|
----------
|
||||||
|
|
||||||
|
Install and update using `pip`_:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
pip install -U Flask
|
||||||
|
|
||||||
|
|
||||||
|
A Simple Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from flask import Flask
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
@app.route("/")
|
||||||
|
def hello():
|
||||||
|
return "Hello, World!"
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ env FLASK_APP=hello.py flask run
|
||||||
|
* Serving Flask app "hello"
|
||||||
|
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
|
||||||
|
|
||||||
|
|
||||||
|
Contributing
|
||||||
|
------------
|
||||||
|
|
||||||
|
For guidance on setting up a development environment and how to make a
|
||||||
|
contribution to Flask, see the `contributing guidelines`_.
|
||||||
|
|
||||||
|
.. _contributing guidelines: https://github.com/pallets/flask/blob/master/CONTRIBUTING.rst
|
||||||
|
|
||||||
|
|
||||||
|
Donate
|
||||||
|
------
|
||||||
|
|
||||||
|
The Pallets organization develops and supports Flask and the libraries
|
||||||
|
it uses. In order to grow the community of contributors and users, and
|
||||||
|
allow the maintainers to devote more time to the projects, `please
|
||||||
|
donate today`_.
|
||||||
|
|
||||||
|
.. _please donate today: https://psfmember.org/civicrm/contribute/transact?reset=1&id=20
|
||||||
|
|
||||||
|
|
||||||
|
Links
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Website: https://palletsprojects.com/p/flask/
|
||||||
|
* Documentation: https://flask.palletsprojects.com/
|
||||||
|
* Releases: https://pypi.org/project/Flask/
|
||||||
|
* Code: https://github.com/pallets/flask
|
||||||
|
* Issue tracker: https://github.com/pallets/flask/issues
|
||||||
|
* Test status: https://dev.azure.com/pallets/flask/_build
|
||||||
|
* Official chat: https://discord.gg/t6rrQZH
|
||||||
|
|
||||||
|
.. _WSGI: https://wsgi.readthedocs.io
|
||||||
|
.. _Werkzeug: https://www.palletsprojects.com/p/werkzeug/
|
||||||
|
.. _Jinja: https://www.palletsprojects.com/p/jinja/
|
||||||
|
.. _pip: https://pip.pypa.io/en/stable/quickstart/
|
||||||
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
|||||||
|
../../../bin/flask,sha256=JOZq0bt3LmzSdCX5_482V7peTWc_ibhjfY8RgvMSfOo,245
|
||||||
|
Flask-1.1.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
Flask-1.1.1.dist-info/LICENSE.rst,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475
|
||||||
|
Flask-1.1.1.dist-info/METADATA,sha256=Ht4R6TpTKOaXOmmQHhEF3A0Obpzde2Ai0kzNdu6-VWQ,4400
|
||||||
|
Flask-1.1.1.dist-info/RECORD,,
|
||||||
|
Flask-1.1.1.dist-info/WHEEL,sha256=h_aVn5OB2IERUjMbi2pucmR_zzWJtk303YXvhh60NJ8,110
|
||||||
|
Flask-1.1.1.dist-info/entry_points.txt,sha256=gBLA1aKg0OYR8AhbAfg8lnburHtKcgJLDU52BBctN0k,42
|
||||||
|
Flask-1.1.1.dist-info/top_level.txt,sha256=dvi65F6AeGWVU0TBpYiC04yM60-FX1gJFkK31IKQr5c,6
|
||||||
|
flask/__init__.py,sha256=qaBW4gy9Xxmdc3ygYO0_H214H1VpF7fq8xRR4XbqRjE,1894
|
||||||
|
flask/__main__.py,sha256=fjVtt3QTANXlpJCOv3Ha7d5H-76MwzSIOab7SFD9TEk,254
|
||||||
|
flask/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/__main__.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/_compat.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/app.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/blueprints.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/cli.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/config.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/ctx.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/debughelpers.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/globals.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/helpers.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/logging.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/sessions.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/signals.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/templating.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/testing.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/views.cpython-37.pyc,,
|
||||||
|
flask/__pycache__/wrappers.cpython-37.pyc,,
|
||||||
|
flask/_compat.py,sha256=8KPT54Iig96TuLipdogLRHNYToIcg-xPhnSV5VRERnw,4099
|
||||||
|
flask/app.py,sha256=gLZInxueeQ9dkBo1wrntZ-bZqiDT4rYxy_AQ1xraFDc,98066
|
||||||
|
flask/blueprints.py,sha256=vkdm8NusGsfZUeIfPdCluj733QFmiQcT4Sk1tuZLUjw,21400
|
||||||
|
flask/cli.py,sha256=_WhPG1bggNdrP0QO95Vex6VJpDqTsVK0z54Y5poljKU,30933
|
||||||
|
flask/config.py,sha256=3dejvQRYfNHw_V7dCLMxU8UNFpL34xIKemN7gHZIZ8Y,10052
|
||||||
|
flask/ctx.py,sha256=cks-omGedkxawHFo6bKIrdOHsJCAgg1i_NWw_htxb5U,16724
|
||||||
|
flask/debughelpers.py,sha256=-whvPKuAoU8AZ9c1z_INuOeBgfYDqE1J2xNBsoriugU,6475
|
||||||
|
flask/globals.py,sha256=OgcHb6_NCyX6-TldciOdKcyj4PNfyQwClxdMhvov6aA,1637
|
||||||
|
flask/helpers.py,sha256=x2Pa85R5dV6uA5f5423JTb6x4u6ZaMGf8sfosUZ76dQ,43004
|
||||||
|
flask/json/__init__.py,sha256=6nITbZYiYOPB8Qfi1-dvsblwn01KRz8VOsMBIZyaYek,11988
|
||||||
|
flask/json/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
flask/json/__pycache__/tag.cpython-37.pyc,,
|
||||||
|
flask/json/tag.py,sha256=vq9GOllg_0kTWKuVFrwmkeOQzR-jdBD23x-89JyCCQI,8306
|
||||||
|
flask/logging.py,sha256=WcY5UkqTysGfmosyygSlXyZYGwOp3y-VsE6ehoJ48dk,3250
|
||||||
|
flask/sessions.py,sha256=G0KsEkr_i1LG_wOINwFSOW3ts7Xbv4bNgEZKc7TRloc,14360
|
||||||
|
flask/signals.py,sha256=yYLOed2x8WnQ7pirGalQYfpYpCILJ0LJhmNSrnWvjqw,2212
|
||||||
|
flask/templating.py,sha256=F8E_IZXn9BGsjMzUJ5N_ACMyZdiFBp_SSEaUunvfZ7g,4939
|
||||||
|
flask/testing.py,sha256=b0QaEejx0UcXqfSFP43k5W57bTVeDyrNK3uPD8JUpCk,10146
|
||||||
|
flask/views.py,sha256=eeWnadLAj0QdQPLtjKipDetRZyG62CT2y7fNOFDJz0g,5802
|
||||||
|
flask/wrappers.py,sha256=kgsvtZuMM6RQaDqhRbc5Pcj9vqTnaERl2pmXcdGL7LU,4736
|
@ -0,0 +1,6 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.33.4)
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py2-none-any
|
||||||
|
Tag: py3-none-any
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
[console_scripts]
|
||||||
|
flask = flask.cli:main
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
flask
|
@ -0,0 +1 @@
|
|||||||
|
pip
|
@ -0,0 +1,28 @@
|
|||||||
|
Copyright 2007 Pallets
|
||||||
|
|
||||||
|
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. Neither the name of the copyright holder 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
|
||||||
|
HOLDER 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.
|
@ -0,0 +1,106 @@
|
|||||||
|
Metadata-Version: 2.1
|
||||||
|
Name: Jinja2
|
||||||
|
Version: 2.11.1
|
||||||
|
Summary: A very fast and expressive template engine.
|
||||||
|
Home-page: https://palletsprojects.com/p/jinja/
|
||||||
|
Author: Armin Ronacher
|
||||||
|
Author-email: armin.ronacher@active-4.com
|
||||||
|
Maintainer: Pallets
|
||||||
|
Maintainer-email: contact@palletsprojects.com
|
||||||
|
License: BSD-3-Clause
|
||||||
|
Project-URL: Documentation, https://jinja.palletsprojects.com/
|
||||||
|
Project-URL: Code, https://github.com/pallets/jinja
|
||||||
|
Project-URL: Issue tracker, https://github.com/pallets/jinja/issues
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Development Status :: 5 - Production/Stable
|
||||||
|
Classifier: Environment :: Web Environment
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: License :: OSI Approved :: BSD License
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Classifier: Programming Language :: Python
|
||||||
|
Classifier: Programming Language :: Python :: 2
|
||||||
|
Classifier: Programming Language :: Python :: 2.7
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: Programming Language :: Python :: 3.5
|
||||||
|
Classifier: Programming Language :: Python :: 3.6
|
||||||
|
Classifier: Programming Language :: Python :: 3.7
|
||||||
|
Classifier: Programming Language :: Python :: 3.8
|
||||||
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
||||||
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
||||||
|
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Classifier: Topic :: Text Processing :: Markup :: HTML
|
||||||
|
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
|
||||||
|
Description-Content-Type: text/x-rst
|
||||||
|
Requires-Dist: MarkupSafe (>=0.23)
|
||||||
|
Provides-Extra: i18n
|
||||||
|
Requires-Dist: Babel (>=0.8) ; extra == 'i18n'
|
||||||
|
|
||||||
|
Jinja
|
||||||
|
=====
|
||||||
|
|
||||||
|
Jinja is a fast, expressive, extensible templating engine. Special
|
||||||
|
placeholders in the template allow writing code similar to Python
|
||||||
|
syntax. Then the template is passed data to render the final document.
|
||||||
|
|
||||||
|
It includes:
|
||||||
|
|
||||||
|
- Template inheritance and inclusion.
|
||||||
|
- Define and import macros within templates.
|
||||||
|
- HTML templates can use autoescaping to prevent XSS from untrusted
|
||||||
|
user input.
|
||||||
|
- A sandboxed environment can safely render untrusted templates.
|
||||||
|
- AsyncIO support for generating templates and calling async
|
||||||
|
functions.
|
||||||
|
- I18N support with Babel.
|
||||||
|
- Templates are compiled to optimized Python code just-in-time and
|
||||||
|
cached, or can be compiled ahead-of-time.
|
||||||
|
- Exceptions point to the correct line in templates to make debugging
|
||||||
|
easier.
|
||||||
|
- Extensible filters, tests, functions, and even syntax.
|
||||||
|
|
||||||
|
Jinja's philosophy is that while application logic belongs in Python if
|
||||||
|
possible, it shouldn't make the template designer's job difficult by
|
||||||
|
restricting functionality too much.
|
||||||
|
|
||||||
|
|
||||||
|
Installing
|
||||||
|
----------
|
||||||
|
|
||||||
|
Install and update using `pip`_:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ pip install -U Jinja2
|
||||||
|
|
||||||
|
.. _pip: https://pip.pypa.io/en/stable/quickstart/
|
||||||
|
|
||||||
|
|
||||||
|
In A Nutshell
|
||||||
|
-------------
|
||||||
|
|
||||||
|
.. code-block:: jinja
|
||||||
|
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block title %}Members{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<ul>
|
||||||
|
{% for user in users %}
|
||||||
|
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
Links
|
||||||
|
-----
|
||||||
|
|
||||||
|
- Website: https://palletsprojects.com/p/jinja/
|
||||||
|
- Documentation: https://jinja.palletsprojects.com/
|
||||||
|
- Releases: https://pypi.org/project/Jinja2/
|
||||||
|
- Code: https://github.com/pallets/jinja
|
||||||
|
- Issue tracker: https://github.com/pallets/jinja/issues
|
||||||
|
- Test status: https://dev.azure.com/pallets/jinja/_build
|
||||||
|
- Official chat: https://discord.gg/t6rrQZH
|
||||||
|
|
||||||
|
|
@ -0,0 +1,61 @@
|
|||||||
|
Jinja2-2.11.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
Jinja2-2.11.1.dist-info/LICENSE.rst,sha256=O0nc7kEF6ze6wQ-vG-JgQI_oXSUrjp3y4JefweCUQ3s,1475
|
||||||
|
Jinja2-2.11.1.dist-info/METADATA,sha256=7e9_tz7RirTbxIeiHTSq3e5g6ddCjoym3o5vdlRLuxU,3535
|
||||||
|
Jinja2-2.11.1.dist-info/RECORD,,
|
||||||
|
Jinja2-2.11.1.dist-info/WHEEL,sha256=hq9T7ntHzQqUTLUmJ2UVhPL-W4tJi3Yb2Lh5lMfs2mk,110
|
||||||
|
Jinja2-2.11.1.dist-info/entry_points.txt,sha256=Qy_DkVo6Xj_zzOtmErrATe8lHZhOqdjpt3e4JJAGyi8,61
|
||||||
|
Jinja2-2.11.1.dist-info/top_level.txt,sha256=PkeVWtLb3-CqjWi1fO29OCbj55EhX_chhKrCdrVe_zs,7
|
||||||
|
jinja2/__init__.py,sha256=Nq1rzGErXYjIQnqc1pDCJht5LmInBRIZkeL2qkrYEyI,1549
|
||||||
|
jinja2/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/_compat.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/_identifier.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/asyncfilters.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/asyncsupport.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/bccache.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/compiler.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/constants.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/debug.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/defaults.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/environment.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/exceptions.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/ext.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/filters.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/idtracking.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/lexer.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/loaders.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/meta.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/nativetypes.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/nodes.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/optimizer.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/parser.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/runtime.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/sandbox.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/tests.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/utils.cpython-37.pyc,,
|
||||||
|
jinja2/__pycache__/visitor.cpython-37.pyc,,
|
||||||
|
jinja2/_compat.py,sha256=B6Se8HjnXVpzz9-vfHejn-DV2NjaVK-Iewupc5kKlu8,3191
|
||||||
|
jinja2/_identifier.py,sha256=EdgGJKi7O1yvr4yFlvqPNEqV6M1qHyQr8Gt8GmVTKVM,1775
|
||||||
|
jinja2/asyncfilters.py,sha256=8uwjG1zgHTv3K4nEvsj4HXWkK4NsOlfx7-CcnCULDWw,4185
|
||||||
|
jinja2/asyncsupport.py,sha256=ZBFsDLuq3Gtji3Ia87lcyuDbqaHZJRdtShZcqwpFnSQ,7209
|
||||||
|
jinja2/bccache.py,sha256=3Pmp4jo65M9FQuIxdxoDBbEDFwe4acDMQf77nEJfrHA,12139
|
||||||
|
jinja2/compiler.py,sha256=xCNpF7-xAduODbGKSVEyzU7XZGeLWHZr1cwcZTQob30,66236
|
||||||
|
jinja2/constants.py,sha256=RR1sTzNzUmKco6aZicw4JpQpJGCuPuqm1h1YmCNUEFY,1458
|
||||||
|
jinja2/debug.py,sha256=UmsW6OxNmbIGvIkwytOyM1NsZB6xJvl_nSz3VgNETUk,8597
|
||||||
|
jinja2/defaults.py,sha256=85B6YUUCyWPSdrSeVhcqFVuu_bHUAQXeey--FIwSeVQ,1126
|
||||||
|
jinja2/environment.py,sha256=XqCM_GmncAXPm--CxpRPVF6uV_sPKb0Q0jVa7Znry04,50605
|
||||||
|
jinja2/exceptions.py,sha256=VjNLawcmf2ODffqVMCQK1cRmvFaUfQWF4u8ouP3QPcE,5425
|
||||||
|
jinja2/ext.py,sha256=AtwL5O5enT_L3HR9-oBvhGyUTdGoyaqG_ICtnR_EVd4,26441
|
||||||
|
jinja2/filters.py,sha256=4xEq1qfJ7burpHW5GyL6bkGomp0W47jOXg-HG5aLP-Y,41401
|
||||||
|
jinja2/idtracking.py,sha256=J3O4VHsrbf3wzwiBc7Cro26kHb6_5kbULeIOzocchIU,9211
|
||||||
|
jinja2/lexer.py,sha256=VeGdW_t82Le4H-jLy-hX6UeosLf7ApUq2kuUos8YF4Y,29942
|
||||||
|
jinja2/loaders.py,sha256=UUy5ud3lNtGtnn8iorlF9o1FJ6UqZZKMxd0VGnnqMHI,20350
|
||||||
|
jinja2/meta.py,sha256=QjyYhfNRD3QCXjBJpiPl9KgkEkGXJbAkCUq4-Ur10EQ,4131
|
||||||
|
jinja2/nativetypes.py,sha256=Arb2_3IuM386vWZbGPY7DmxryrXg3WzXAEnaHJNdWa0,3576
|
||||||
|
jinja2/nodes.py,sha256=YwErhE9plVWeoxTQPtMwl10wovsyBRY4x9eAVgtP6zg,31071
|
||||||
|
jinja2/optimizer.py,sha256=gQLlMYzvQhluhzmAIFA1tXS0cwgWYOjprN-gTRcHVsc,1457
|
||||||
|
jinja2/parser.py,sha256=fcfdqePNTNyvosIvczbytVA332qpsURvYnCGcjDHSkA,35660
|
||||||
|
jinja2/runtime.py,sha256=94chnK20a1m1t5AaLWeuiTq6L3g3GLs6AxVPfbNXIHE,30582
|
||||||
|
jinja2/sandbox.py,sha256=knayyUvXsZ-F0mk15mO2-ehK9gsw04UhB8td-iUOtLc,17127
|
||||||
|
jinja2/tests.py,sha256=iO_Y-9Vo60zrVe1lMpSl5sKHqAxe2leZHC08OoZ8K24,4799
|
||||||
|
jinja2/utils.py,sha256=26B9HI2lVWaHY8iOnQTJzAcCL4PYOLiA3V79dm3oOSE,22456
|
||||||
|
jinja2/visitor.py,sha256=DUHupl0a4PGp7nxRtZFttUzAi1ccxzqc2hzetPYUz8U,3240
|
@ -0,0 +1,6 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.34.1)
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py2-none-any
|
||||||
|
Tag: py3-none-any
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
[babel.extractors]
|
||||||
|
jinja2 = jinja2.ext:babel_extract [i18n]
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
jinja2
|
@ -0,0 +1 @@
|
|||||||
|
pip
|
@ -0,0 +1,28 @@
|
|||||||
|
Copyright 2010 Pallets
|
||||||
|
|
||||||
|
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. Neither the name of the copyright holder 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
|
||||||
|
HOLDER 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.
|
@ -0,0 +1,103 @@
|
|||||||
|
Metadata-Version: 2.1
|
||||||
|
Name: MarkupSafe
|
||||||
|
Version: 1.1.1
|
||||||
|
Summary: Safely add untrusted strings to HTML/XML markup.
|
||||||
|
Home-page: https://palletsprojects.com/p/markupsafe/
|
||||||
|
Author: Armin Ronacher
|
||||||
|
Author-email: armin.ronacher@active-4.com
|
||||||
|
Maintainer: The Pallets Team
|
||||||
|
Maintainer-email: contact@palletsprojects.com
|
||||||
|
License: BSD-3-Clause
|
||||||
|
Project-URL: Documentation, https://markupsafe.palletsprojects.com/
|
||||||
|
Project-URL: Code, https://github.com/pallets/markupsafe
|
||||||
|
Project-URL: Issue tracker, https://github.com/pallets/markupsafe/issues
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Development Status :: 5 - Production/Stable
|
||||||
|
Classifier: Environment :: Web Environment
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: License :: OSI Approved :: BSD License
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Classifier: Programming Language :: Python
|
||||||
|
Classifier: Programming Language :: Python :: 2
|
||||||
|
Classifier: Programming Language :: Python :: 2.7
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: Programming Language :: Python :: 3.4
|
||||||
|
Classifier: Programming Language :: Python :: 3.5
|
||||||
|
Classifier: Programming Language :: Python :: 3.6
|
||||||
|
Classifier: Programming Language :: Python :: 3.7
|
||||||
|
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Classifier: Topic :: Text Processing :: Markup :: HTML
|
||||||
|
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*
|
||||||
|
|
||||||
|
MarkupSafe
|
||||||
|
==========
|
||||||
|
|
||||||
|
MarkupSafe implements a text object that escapes characters so it is
|
||||||
|
safe to use in HTML and XML. Characters that have special meanings are
|
||||||
|
replaced so that they display as the actual characters. This mitigates
|
||||||
|
injection attacks, meaning untrusted user input can safely be displayed
|
||||||
|
on a page.
|
||||||
|
|
||||||
|
|
||||||
|
Installing
|
||||||
|
----------
|
||||||
|
|
||||||
|
Install and update using `pip`_:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
pip install -U MarkupSafe
|
||||||
|
|
||||||
|
.. _pip: https://pip.pypa.io/en/stable/quickstart/
|
||||||
|
|
||||||
|
|
||||||
|
Examples
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. code-block:: pycon
|
||||||
|
|
||||||
|
>>> from markupsafe import Markup, escape
|
||||||
|
>>> # escape replaces special characters and wraps in Markup
|
||||||
|
>>> escape('<script>alert(document.cookie);</script>')
|
||||||
|
Markup(u'<script>alert(document.cookie);</script>')
|
||||||
|
>>> # wrap in Markup to mark text "safe" and prevent escaping
|
||||||
|
>>> Markup('<strong>Hello</strong>')
|
||||||
|
Markup('<strong>hello</strong>')
|
||||||
|
>>> escape(Markup('<strong>Hello</strong>'))
|
||||||
|
Markup('<strong>hello</strong>')
|
||||||
|
>>> # Markup is a text subclass (str on Python 3, unicode on Python 2)
|
||||||
|
>>> # methods and operators escape their arguments
|
||||||
|
>>> template = Markup("Hello <em>%s</em>")
|
||||||
|
>>> template % '"World"'
|
||||||
|
Markup('Hello <em>"World"</em>')
|
||||||
|
|
||||||
|
|
||||||
|
Donate
|
||||||
|
------
|
||||||
|
|
||||||
|
The Pallets organization develops and supports MarkupSafe and other
|
||||||
|
libraries that use it. In order to grow the community of contributors
|
||||||
|
and users, and allow the maintainers to devote more time to the
|
||||||
|
projects, `please donate today`_.
|
||||||
|
|
||||||
|
.. _please donate today: https://palletsprojects.com/donate
|
||||||
|
|
||||||
|
|
||||||
|
Links
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Website: https://palletsprojects.com/p/markupsafe/
|
||||||
|
* Documentation: https://markupsafe.palletsprojects.com/
|
||||||
|
* License: `BSD-3-Clause <https://github.com/pallets/markupsafe/blob/master/LICENSE.rst>`_
|
||||||
|
* Releases: https://pypi.org/project/MarkupSafe/
|
||||||
|
* Code: https://github.com/pallets/markupsafe
|
||||||
|
* Issue tracker: https://github.com/pallets/markupsafe/issues
|
||||||
|
* Test status:
|
||||||
|
|
||||||
|
* Linux, Mac: https://travis-ci.org/pallets/markupsafe
|
||||||
|
* Windows: https://ci.appveyor.com/project/pallets/markupsafe
|
||||||
|
|
||||||
|
* Test coverage: https://codecov.io/gh/pallets/markupsafe
|
||||||
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
|||||||
|
MarkupSafe-1.1.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
MarkupSafe-1.1.1.dist-info/LICENSE.txt,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475
|
||||||
|
MarkupSafe-1.1.1.dist-info/METADATA,sha256=nJHwJ4_4ka-V39QH883jPrslj6inNdyyNASBXbYgHXQ,3570
|
||||||
|
MarkupSafe-1.1.1.dist-info/RECORD,,
|
||||||
|
MarkupSafe-1.1.1.dist-info/WHEEL,sha256=AhV6RMqZ2IDfreRJKo44QWYxYeP-0Jr0bezzBLQ1eog,109
|
||||||
|
MarkupSafe-1.1.1.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11
|
||||||
|
markupsafe/__init__.py,sha256=oTblO5f9KFM-pvnq9bB0HgElnqkJyqHnFN1Nx2NIvnY,10126
|
||||||
|
markupsafe/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
markupsafe/__pycache__/_compat.cpython-37.pyc,,
|
||||||
|
markupsafe/__pycache__/_constants.cpython-37.pyc,,
|
||||||
|
markupsafe/__pycache__/_native.cpython-37.pyc,,
|
||||||
|
markupsafe/_compat.py,sha256=uEW1ybxEjfxIiuTbRRaJpHsPFf4yQUMMKaPgYEC5XbU,558
|
||||||
|
markupsafe/_constants.py,sha256=zo2ajfScG-l1Sb_52EP3MlDCqO7Y1BVHUXXKRsVDRNk,4690
|
||||||
|
markupsafe/_native.py,sha256=d-8S_zzYt2y512xYcuSxq0NeG2DUUvG80wVdTn-4KI8,1873
|
||||||
|
markupsafe/_speedups.c,sha256=k0fzEIK3CP6MmMqeY0ob43TP90mVN0DTyn7BAl3RqSg,9884
|
||||||
|
markupsafe/_speedups.cpython-37m-x86_64-linux-gnu.so,sha256=pz-ucGdAq6kJtq9lEY1kY2Ed6LQjbRrIicdu_i4HFqU,38875
|
@ -0,0 +1,5 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.31.1)
|
||||||
|
Root-Is-Purelib: false
|
||||||
|
Tag: cp37-cp37m-manylinux1_x86_64
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
markupsafe
|
@ -0,0 +1 @@
|
|||||||
|
pip
|
@ -0,0 +1,28 @@
|
|||||||
|
Copyright 2007 Pallets
|
||||||
|
|
||||||
|
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. Neither the name of the copyright holder 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
|
||||||
|
HOLDER 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.
|
@ -0,0 +1,130 @@
|
|||||||
|
Metadata-Version: 2.1
|
||||||
|
Name: Werkzeug
|
||||||
|
Version: 0.16.1
|
||||||
|
Summary: The comprehensive WSGI web application library.
|
||||||
|
Home-page: https://palletsprojects.com/p/werkzeug/
|
||||||
|
Author: Armin Ronacher
|
||||||
|
Author-email: armin.ronacher@active-4.com
|
||||||
|
Maintainer: Pallets
|
||||||
|
Maintainer-email: contact@palletsprojects.com
|
||||||
|
License: BSD-3-Clause
|
||||||
|
Project-URL: Documentation, https://werkzeug.palletsprojects.com/
|
||||||
|
Project-URL: Code, https://github.com/pallets/werkzeug
|
||||||
|
Project-URL: Issue tracker, https://github.com/pallets/werkzeug/issues
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Development Status :: 5 - Production/Stable
|
||||||
|
Classifier: Environment :: Web Environment
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: License :: OSI Approved :: BSD License
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Classifier: Programming Language :: Python
|
||||||
|
Classifier: Programming Language :: Python :: 2
|
||||||
|
Classifier: Programming Language :: Python :: 2.7
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: Programming Language :: Python :: 3.4
|
||||||
|
Classifier: Programming Language :: Python :: 3.5
|
||||||
|
Classifier: Programming Language :: Python :: 3.6
|
||||||
|
Classifier: Programming Language :: Python :: 3.7
|
||||||
|
Classifier: Programming Language :: Python :: 3.8
|
||||||
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
||||||
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
||||||
|
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
||||||
|
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
|
||||||
|
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
|
||||||
|
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
|
||||||
|
Description-Content-Type: text/x-rst
|
||||||
|
Provides-Extra: dev
|
||||||
|
Requires-Dist: pytest ; extra == 'dev'
|
||||||
|
Requires-Dist: coverage ; extra == 'dev'
|
||||||
|
Requires-Dist: tox ; extra == 'dev'
|
||||||
|
Requires-Dist: sphinx ; extra == 'dev'
|
||||||
|
Requires-Dist: pallets-sphinx-themes ; extra == 'dev'
|
||||||
|
Requires-Dist: sphinx-issues ; extra == 'dev'
|
||||||
|
Provides-Extra: termcolor
|
||||||
|
Requires-Dist: termcolor ; extra == 'termcolor'
|
||||||
|
Provides-Extra: watchdog
|
||||||
|
Requires-Dist: watchdog ; extra == 'watchdog'
|
||||||
|
|
||||||
|
Werkzeug
|
||||||
|
========
|
||||||
|
|
||||||
|
*werkzeug* German noun: "tool". Etymology: *werk* ("work"), *zeug* ("stuff")
|
||||||
|
|
||||||
|
Werkzeug is a comprehensive `WSGI`_ web application library. It began as
|
||||||
|
a simple collection of various utilities for WSGI applications and has
|
||||||
|
become one of the most advanced WSGI utility libraries.
|
||||||
|
|
||||||
|
It includes:
|
||||||
|
|
||||||
|
- An interactive debugger that allows inspecting stack traces and
|
||||||
|
source code in the browser with an interactive interpreter for any
|
||||||
|
frame in the stack.
|
||||||
|
- A full-featured request object with objects to interact with
|
||||||
|
headers, query args, form data, files, and cookies.
|
||||||
|
- A response object that can wrap other WSGI applications and handle
|
||||||
|
streaming data.
|
||||||
|
- A routing system for matching URLs to endpoints and generating URLs
|
||||||
|
for endpoints, with an extensible system for capturing variables
|
||||||
|
from URLs.
|
||||||
|
- HTTP utilities to handle entity tags, cache control, dates, user
|
||||||
|
agents, cookies, files, and more.
|
||||||
|
- A threaded WSGI server for use while developing applications
|
||||||
|
locally.
|
||||||
|
- A test client for simulating HTTP requests during testing without
|
||||||
|
requiring running a server.
|
||||||
|
|
||||||
|
Werkzeug is Unicode aware and doesn't enforce any dependencies. It is up
|
||||||
|
to the developer to choose a template engine, database adapter, and even
|
||||||
|
how to handle requests. It can be used to build all sorts of end user
|
||||||
|
applications such as blogs, wikis, or bulletin boards.
|
||||||
|
|
||||||
|
`Flask`_ wraps Werkzeug, using it to handle the details of WSGI while
|
||||||
|
providing more structure and patterns for defining powerful
|
||||||
|
applications.
|
||||||
|
|
||||||
|
|
||||||
|
Installing
|
||||||
|
----------
|
||||||
|
|
||||||
|
Install and update using `pip`_:
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
pip install -U Werkzeug
|
||||||
|
|
||||||
|
|
||||||
|
A Simple Example
|
||||||
|
----------------
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from werkzeug.wrappers import Request, Response
|
||||||
|
|
||||||
|
@Request.application
|
||||||
|
def application(request):
|
||||||
|
return Response('Hello, World!')
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
from werkzeug.serving import run_simple
|
||||||
|
run_simple('localhost', 4000, application)
|
||||||
|
|
||||||
|
|
||||||
|
Links
|
||||||
|
-----
|
||||||
|
|
||||||
|
- Website: https://palletsprojects.com/p/werkzeug/
|
||||||
|
- Documentation: https://werkzeug.palletsprojects.com/
|
||||||
|
- Releases: https://pypi.org/project/Werkzeug/
|
||||||
|
- Code: https://github.com/pallets/werkzeug
|
||||||
|
- Issue tracker: https://github.com/pallets/werkzeug/issues
|
||||||
|
- Test status: https://dev.azure.com/pallets/werkzeug/_build
|
||||||
|
- Official chat: https://discord.gg/t6rrQZH
|
||||||
|
|
||||||
|
.. _WSGI: https://wsgi.readthedocs.io/en/latest/
|
||||||
|
.. _Flask: https://www.palletsprojects.com/p/flask/
|
||||||
|
.. _pip: https://pip.pypa.io/en/stable/quickstart/
|
||||||
|
|
||||||
|
|
@ -0,0 +1,119 @@
|
|||||||
|
Werkzeug-0.16.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
Werkzeug-0.16.1.dist-info/LICENSE.rst,sha256=O0nc7kEF6ze6wQ-vG-JgQI_oXSUrjp3y4JefweCUQ3s,1475
|
||||||
|
Werkzeug-0.16.1.dist-info/METADATA,sha256=evmf7dad7_ZlJCBAbTgwTOUHYN9iMRIsh-P6Ea5hpLs,4799
|
||||||
|
Werkzeug-0.16.1.dist-info/RECORD,,
|
||||||
|
Werkzeug-0.16.1.dist-info/WHEEL,sha256=8zNYZbwQSXoB9IfXOjPfeNwvAsALAjffgk27FqvCWbo,110
|
||||||
|
Werkzeug-0.16.1.dist-info/top_level.txt,sha256=QRyj2VjwJoQkrwjwFIOlB8Xg3r9un0NtqVHQF-15xaw,9
|
||||||
|
werkzeug/__init__.py,sha256=EunnTD1XRQT6KZ65HwvPRMsGZNqQ_LsaWVL6pHDm7ts,7219
|
||||||
|
werkzeug/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/_compat.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/_internal.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/_reloader.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/datastructures.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/exceptions.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/filesystem.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/formparser.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/http.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/local.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/posixemulation.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/routing.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/security.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/serving.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/test.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/testapp.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/urls.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/useragents.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/utils.cpython-37.pyc,,
|
||||||
|
werkzeug/__pycache__/wsgi.cpython-37.pyc,,
|
||||||
|
werkzeug/_compat.py,sha256=oBEVVrJT4sqYdIZbUWmgV9T9w257RhTSDBlTjh0Zbb0,6431
|
||||||
|
werkzeug/_internal.py,sha256=Wx7cpTRWqeBd0LAqobo0lCO4pNUW4oav6XKf7Taumgk,14590
|
||||||
|
werkzeug/_reloader.py,sha256=I3mg3oRQ0lLzl06oEoVopN3bN7CtINuuUQdqDcmTnEs,11531
|
||||||
|
werkzeug/contrib/__init__.py,sha256=EvNyiiCF49j5P0fZYJ3ZGe82ofXdSBvUNqWFwwBMibQ,553
|
||||||
|
werkzeug/contrib/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/atom.cpython-37.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/cache.cpython-37.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/fixers.cpython-37.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/iterio.cpython-37.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/lint.cpython-37.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/profiler.cpython-37.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/securecookie.cpython-37.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/sessions.cpython-37.pyc,,
|
||||||
|
werkzeug/contrib/__pycache__/wrappers.cpython-37.pyc,,
|
||||||
|
werkzeug/contrib/atom.py,sha256=KpPJcTfzNW1J0VNQckCbVtVGBe3V8s451tOUya4qByI,15415
|
||||||
|
werkzeug/contrib/cache.py,sha256=AEh5UIw-Ui7sHZnlpvrD7ueOKUhCaAD55FXiPtXbbRs,32115
|
||||||
|
werkzeug/contrib/fixers.py,sha256=peEtAiIWYT5bh00EWEPOGKzGZXivOzVhhzKPvvzk1RM,9193
|
||||||
|
werkzeug/contrib/iterio.py,sha256=KKHa_8aCF_uhoeQVyPGUwrivuB6y6nNdXYo2D2vzOA8,10928
|
||||||
|
werkzeug/contrib/lint.py,sha256=NdIxP0E2kVt1xDIxoaIz3Rcl8ZdgmHaFbGTOaybGpN4,296
|
||||||
|
werkzeug/contrib/profiler.py,sha256=k_oMLU-AtsVvQ9TxNdermY6FuzSTYr-WE-ZmWb_DMyU,1229
|
||||||
|
werkzeug/contrib/securecookie.py,sha256=xbtElskGmtbiApgOJ5WhGgqGDs_68_PcWzqDIAY_QZY,13076
|
||||||
|
werkzeug/contrib/sessions.py,sha256=CkJ4IWvNqIaZCP83FMKYFszKL7E6Y1m6YEii7RaTYWs,13040
|
||||||
|
werkzeug/contrib/wrappers.py,sha256=ZmNk0wpzD66yomPnQxapndZQs4c0kNJaRzqI-BVxeQk,13199
|
||||||
|
werkzeug/datastructures.py,sha256=yVH4r-XD8CjOo18tDGVJYiAfezng6pK9hWzzLFy5a94,91761
|
||||||
|
werkzeug/debug/__init__.py,sha256=Bo3HvgTNY4NQ_2jROTSk3r1ScZcT_g_4EnuHTjKyrKM,18275
|
||||||
|
werkzeug/debug/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
werkzeug/debug/__pycache__/console.cpython-37.pyc,,
|
||||||
|
werkzeug/debug/__pycache__/repr.cpython-37.pyc,,
|
||||||
|
werkzeug/debug/__pycache__/tbtools.cpython-37.pyc,,
|
||||||
|
werkzeug/debug/console.py,sha256=HoBL21bbcmtiCLqiLDJLZi1LYnWMZxjoXYH5WaZB1XY,5469
|
||||||
|
werkzeug/debug/repr.py,sha256=lIwuhbyrMwVe3P_cFqNyqzHL7P93TLKod7lw9clydEw,9621
|
||||||
|
werkzeug/debug/shared/FONT_LICENSE,sha256=LwAVEI1oYnvXiNMT9SnCH_TaLCxCpeHziDrMg0gPkAI,4673
|
||||||
|
werkzeug/debug/shared/console.png,sha256=bxax6RXXlvOij_KeqvSNX0ojJf83YbnZ7my-3Gx9w2A,507
|
||||||
|
werkzeug/debug/shared/debugger.js,sha256=rOhqZMRfpZnnu6_XCGn6wMWPhtfwRAcyZKksdIxPJas,6400
|
||||||
|
werkzeug/debug/shared/jquery.js,sha256=CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo,88145
|
||||||
|
werkzeug/debug/shared/less.png,sha256=-4-kNRaXJSONVLahrQKUxMwXGm9R4OnZ9SxDGpHlIR4,191
|
||||||
|
werkzeug/debug/shared/more.png,sha256=GngN7CioHQoV58rH6ojnkYi8c_qED2Aka5FO5UXrReY,200
|
||||||
|
werkzeug/debug/shared/source.png,sha256=RoGcBTE4CyCB85GBuDGTFlAnUqxwTBiIfDqW15EpnUQ,818
|
||||||
|
werkzeug/debug/shared/style.css,sha256=gZ9uhmb5zj3XLuT9RvnMp6jMINgQ-VVBCp-2AZbG3YQ,6604
|
||||||
|
werkzeug/debug/shared/ubuntu.ttf,sha256=1eaHFyepmy4FyDvjLVzpITrGEBu_CZYY94jE0nED1c0,70220
|
||||||
|
werkzeug/debug/tbtools.py,sha256=SkAAA4KKfwsXJinUbf-AEP4GqONTsR4uU7WPUloXcSE,20318
|
||||||
|
werkzeug/exceptions.py,sha256=7wl3ufZZU23sASp0ciPe8GJssGND9DX6sDbjxvPuGYU,23437
|
||||||
|
werkzeug/filesystem.py,sha256=HzKl-j0Hd8Jl66j778UbPTAYNnY6vUZgYLlBZ0e7uw0,2101
|
||||||
|
werkzeug/formparser.py,sha256=Sto0jZid9im9ZVIf56vilCdyX-arK33wSftkYsLCnzo,21788
|
||||||
|
werkzeug/http.py,sha256=L6r2ehiorjOtsXITW-01zJsvtVa8Emkpkftu9di_cSk,41628
|
||||||
|
werkzeug/local.py,sha256=USVEcgIg-oCiUJFPIecFIW9jkIejfw4Fjf1u5yN-Np4,14456
|
||||||
|
werkzeug/middleware/__init__.py,sha256=f1SFZo67IlW4k1uqKzNHxYQlsakUS-D6KK_j0e3jjwQ,549
|
||||||
|
werkzeug/middleware/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
werkzeug/middleware/__pycache__/dispatcher.cpython-37.pyc,,
|
||||||
|
werkzeug/middleware/__pycache__/http_proxy.cpython-37.pyc,,
|
||||||
|
werkzeug/middleware/__pycache__/lint.cpython-37.pyc,,
|
||||||
|
werkzeug/middleware/__pycache__/profiler.cpython-37.pyc,,
|
||||||
|
werkzeug/middleware/__pycache__/proxy_fix.cpython-37.pyc,,
|
||||||
|
werkzeug/middleware/__pycache__/shared_data.cpython-37.pyc,,
|
||||||
|
werkzeug/middleware/dispatcher.py,sha256=_-KoMzHtcISHS7ouWKAOraqlCLprdh83YOAn_8DjLp8,2240
|
||||||
|
werkzeug/middleware/http_proxy.py,sha256=lRjTdMmghHiZuZrS7_UJ3gZc-vlFizhBbFZ-XZPLwIA,7117
|
||||||
|
werkzeug/middleware/lint.py,sha256=ItTwuWJnflF8xMT1uqU_Ty1ryhux-CjeUfskqaUpxsw,12967
|
||||||
|
werkzeug/middleware/profiler.py,sha256=8B_s23d6BGrU_q54gJsm6kcCbOJbTSqrXCsioHON0Xs,4471
|
||||||
|
werkzeug/middleware/proxy_fix.py,sha256=1hi6AJH-J2uh2hMm1g0u7XfjRiTOoUeIOOmwWZ2n9t0,8670
|
||||||
|
werkzeug/middleware/shared_data.py,sha256=WtSphPrsUdpEk4E-_09CAILhfOBJ1YtcX1LrxcQfIzw,8224
|
||||||
|
werkzeug/posixemulation.py,sha256=gSSiv1SCmOyzOM_nq1ZaZCtxP__C5MeDJl_4yXJmi4Q,3541
|
||||||
|
werkzeug/routing.py,sha256=BSgjrYNwj2j5dAHQtK4INEp2TOf4OJP8hBncYSRO2ps,73410
|
||||||
|
werkzeug/security.py,sha256=81149MplFq7-hD4RK4sKp9kzXXejjV9D4lWBzaRyeQ8,8106
|
||||||
|
werkzeug/serving.py,sha256=czF2QRcEgQUTRzIi918qtKuxn_G5YKRVs9t9F67NCF4,36710
|
||||||
|
werkzeug/test.py,sha256=Cnb5xa3vLDL0hzFCH1fkG_YRpndViGQgCh4D744iSQk,40645
|
||||||
|
werkzeug/testapp.py,sha256=bHekqMsqRfVxwgFbvOMem-DYa_sdB7R47yUXpt1RUTo,9329
|
||||||
|
werkzeug/urls.py,sha256=hWZMk4ABiJmQPP_B5rRibWTp9gOyNLQpTqq6cmQAfeE,39322
|
||||||
|
werkzeug/useragents.py,sha256=0A_Ip74edPv_hy6CouBTpGumi2uyOci01COuzYFOm3U,5622
|
||||||
|
werkzeug/utils.py,sha256=KxCOHhsox7tAVe0m-ZyOGPoCaIbBIy7TxhocaUEHrd4,25050
|
||||||
|
werkzeug/wrappers/__init__.py,sha256=S4VioKAmF_av9Ec9zQvG71X1EOkYfPx1TYck9jyDiyY,1384
|
||||||
|
werkzeug/wrappers/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
werkzeug/wrappers/__pycache__/accept.cpython-37.pyc,,
|
||||||
|
werkzeug/wrappers/__pycache__/auth.cpython-37.pyc,,
|
||||||
|
werkzeug/wrappers/__pycache__/base_request.cpython-37.pyc,,
|
||||||
|
werkzeug/wrappers/__pycache__/base_response.cpython-37.pyc,,
|
||||||
|
werkzeug/wrappers/__pycache__/common_descriptors.cpython-37.pyc,,
|
||||||
|
werkzeug/wrappers/__pycache__/etag.cpython-37.pyc,,
|
||||||
|
werkzeug/wrappers/__pycache__/json.cpython-37.pyc,,
|
||||||
|
werkzeug/wrappers/__pycache__/request.cpython-37.pyc,,
|
||||||
|
werkzeug/wrappers/__pycache__/response.cpython-37.pyc,,
|
||||||
|
werkzeug/wrappers/__pycache__/user_agent.cpython-37.pyc,,
|
||||||
|
werkzeug/wrappers/accept.py,sha256=TIvjUc0g73fhTWX54wg_D9NNzKvpnG1X8u1w26tK1o8,1760
|
||||||
|
werkzeug/wrappers/auth.py,sha256=Pmn6iaGHBrUyHbJpW0lZhO_q9RVoAa5QalaTqcavdAI,1158
|
||||||
|
werkzeug/wrappers/base_request.py,sha256=aknREwqVT7WJUxm4weUGdBj90H6rDR3DvsIvmYhaC8A,26943
|
||||||
|
werkzeug/wrappers/base_response.py,sha256=ZA1XlxtsbvG4SpbdOEMT5--z7aZM0w6C5y33W8wOXa4,27906
|
||||||
|
werkzeug/wrappers/common_descriptors.py,sha256=OJ8jOwMun4L-BxCuFPkK1vaefx_-Y5IndVXvvn_ems4,12089
|
||||||
|
werkzeug/wrappers/etag.py,sha256=TwMO1fvluXbBqnFTj2DvrCNa3mYhbHYe1UZAVzfXvuU,12533
|
||||||
|
werkzeug/wrappers/json.py,sha256=HvK_A4NpO0sLqgb10sTJcoZydYOwyNiPCJPV7SVgcgE,4343
|
||||||
|
werkzeug/wrappers/request.py,sha256=qPo2zmmBv4HxboywtWZb2pJL8OPXo07BUXBKw2j9Fi8,1338
|
||||||
|
werkzeug/wrappers/response.py,sha256=vDZFEGzDOG0jjmS0uVVjeT3hqRt1hFaf15npnx7RD28,2329
|
||||||
|
werkzeug/wrappers/user_agent.py,sha256=YJb-vr12cujG7sQMG9V89VsJa-03SWSenhg1W4cT0EY,435
|
||||||
|
werkzeug/wsgi.py,sha256=iXOR9l1fDd2IgqeTRQZPR6LnBBBx7Xsy97_i2n5HPUo,34666
|
@ -0,0 +1,6 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.33.6)
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py2-none-any
|
||||||
|
Tag: py3-none-any
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
werkzeug
|
@ -0,0 +1,50 @@
|
|||||||
|
Certifi: Python SSL Certificates
|
||||||
|
================================
|
||||||
|
|
||||||
|
`Certifi`_ is a carefully curated collection of Root Certificates for
|
||||||
|
validating the trustworthiness of SSL certificates while verifying the identity
|
||||||
|
of TLS hosts. It has been extracted from the `Requests`_ project.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
``certifi`` is available on PyPI. Simply install it with ``pip``::
|
||||||
|
|
||||||
|
$ pip install certifi
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
To reference the installed certificate authority (CA) bundle, you can use the
|
||||||
|
built-in function::
|
||||||
|
|
||||||
|
>>> import certifi
|
||||||
|
|
||||||
|
>>> certifi.where()
|
||||||
|
'/usr/local/lib/python2.7/site-packages/certifi/cacert.pem'
|
||||||
|
|
||||||
|
Or from the command line::
|
||||||
|
|
||||||
|
$ python -m certifi
|
||||||
|
/usr/local/lib/python2.7/site-packages/certifi/cacert.pem
|
||||||
|
|
||||||
|
Enjoy!
|
||||||
|
|
||||||
|
1024-bit Root Certificates
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Browsers and certificate authorities have concluded that 1024-bit keys are
|
||||||
|
unacceptably weak for certificates, particularly root certificates. For this
|
||||||
|
reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
|
||||||
|
bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
|
||||||
|
certificate from the same CA. Because Mozilla removed these certificates from
|
||||||
|
its bundle, ``certifi`` removed them as well.
|
||||||
|
|
||||||
|
In previous versions, ``certifi`` provided the ``certifi.old_where()`` function
|
||||||
|
to intentionally re-add the 1024-bit roots back into your bundle. This was not
|
||||||
|
recommended in production and therefore was removed at the end of 2018.
|
||||||
|
|
||||||
|
.. _`Certifi`: https://certifi.io/en/latest/
|
||||||
|
.. _`Requests`: http://docs.python-requests.org/en/latest/
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
pip
|
@ -0,0 +1,74 @@
|
|||||||
|
Metadata-Version: 2.0
|
||||||
|
Name: certifi
|
||||||
|
Version: 2019.11.28
|
||||||
|
Summary: Python package for providing Mozilla's CA Bundle.
|
||||||
|
Home-page: https://certifi.io/
|
||||||
|
Author: Kenneth Reitz
|
||||||
|
Author-email: me@kennethreitz.com
|
||||||
|
License: MPL-2.0
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Development Status :: 5 - Production/Stable
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
|
||||||
|
Classifier: Natural Language :: English
|
||||||
|
Classifier: Programming Language :: Python
|
||||||
|
Classifier: Programming Language :: Python :: 2
|
||||||
|
Classifier: Programming Language :: Python :: 2.6
|
||||||
|
Classifier: Programming Language :: Python :: 2.7
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: Programming Language :: Python :: 3.3
|
||||||
|
Classifier: Programming Language :: Python :: 3.4
|
||||||
|
Classifier: Programming Language :: Python :: 3.5
|
||||||
|
Classifier: Programming Language :: Python :: 3.6
|
||||||
|
Classifier: Programming Language :: Python :: 3.7
|
||||||
|
|
||||||
|
Certifi: Python SSL Certificates
|
||||||
|
================================
|
||||||
|
|
||||||
|
`Certifi`_ is a carefully curated collection of Root Certificates for
|
||||||
|
validating the trustworthiness of SSL certificates while verifying the identity
|
||||||
|
of TLS hosts. It has been extracted from the `Requests`_ project.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
``certifi`` is available on PyPI. Simply install it with ``pip``::
|
||||||
|
|
||||||
|
$ pip install certifi
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
To reference the installed certificate authority (CA) bundle, you can use the
|
||||||
|
built-in function::
|
||||||
|
|
||||||
|
>>> import certifi
|
||||||
|
|
||||||
|
>>> certifi.where()
|
||||||
|
'/usr/local/lib/python2.7/site-packages/certifi/cacert.pem'
|
||||||
|
|
||||||
|
Or from the command line::
|
||||||
|
|
||||||
|
$ python -m certifi
|
||||||
|
/usr/local/lib/python2.7/site-packages/certifi/cacert.pem
|
||||||
|
|
||||||
|
Enjoy!
|
||||||
|
|
||||||
|
1024-bit Root Certificates
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Browsers and certificate authorities have concluded that 1024-bit keys are
|
||||||
|
unacceptably weak for certificates, particularly root certificates. For this
|
||||||
|
reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
|
||||||
|
bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
|
||||||
|
certificate from the same CA. Because Mozilla removed these certificates from
|
||||||
|
its bundle, ``certifi`` removed them as well.
|
||||||
|
|
||||||
|
In previous versions, ``certifi`` provided the ``certifi.old_where()`` function
|
||||||
|
to intentionally re-add the 1024-bit roots back into your bundle. This was not
|
||||||
|
recommended in production and therefore was removed at the end of 2018.
|
||||||
|
|
||||||
|
.. _`Certifi`: https://certifi.io/en/latest/
|
||||||
|
.. _`Requests`: http://docs.python-requests.org/en/latest/
|
||||||
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
|||||||
|
certifi-2019.11.28.dist-info/DESCRIPTION.rst,sha256=aLNHONztn2ZiBpSTivVFy6EDIWmuNYSsEQwx4NWbvB4,1580
|
||||||
|
certifi-2019.11.28.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
certifi-2019.11.28.dist-info/METADATA,sha256=CnYsfjDpEJJMNgBGSD2v_WN-PS-g4ZmIt1aiZ8UiRiE,2523
|
||||||
|
certifi-2019.11.28.dist-info/RECORD,,
|
||||||
|
certifi-2019.11.28.dist-info/WHEEL,sha256=5wvfB7GvgZAbKBSE9uX9Zbi6LCL-_KgezgHblXhCRnM,113
|
||||||
|
certifi-2019.11.28.dist-info/metadata.json,sha256=9MSLVS0RruV3LnE_uHbsv6QHamn7Lq9GwQ_gZOrw4Mw,1023
|
||||||
|
certifi-2019.11.28.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8
|
||||||
|
certifi/__init__.py,sha256=JVwzDhkMttyVVtfNDrU_i0v2a-WmtEBXq0Z8oz4Ghzk,52
|
||||||
|
certifi/__main__.py,sha256=FiOYt1Fltst7wk9DRa6GCoBr8qBUxlNQu_MKJf04E6s,41
|
||||||
|
certifi/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
certifi/__pycache__/__main__.cpython-37.pyc,,
|
||||||
|
certifi/__pycache__/core.cpython-37.pyc,,
|
||||||
|
certifi/cacert.pem,sha256=cyvv5Jx1gHACNEj2GaOrsIj0Tk8FmSvHR42uhzvlatg,281457
|
||||||
|
certifi/core.py,sha256=EuFc2BsToG5O1-qsx4BSjQ1r1-7WRtH87b1WflZOWhI,218
|
@ -0,0 +1,6 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.30.0.a0)
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py2-none-any
|
||||||
|
Tag: py3-none-any
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
{"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7"], "extensions": {"python.details": {"contacts": [{"email": "me@kennethreitz.com", "name": "Kenneth Reitz", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://certifi.io/"}}}, "generator": "bdist_wheel (0.30.0.a0)", "license": "MPL-2.0", "metadata_version": "2.0", "name": "certifi", "summary": "Python package for providing Mozilla's CA Bundle.", "version": "2019.11.28"}
|
@ -0,0 +1 @@
|
|||||||
|
certifi
|
3
venv/lib/python3.7/site-packages/certifi/__init__.py
Normal file
3
venv/lib/python3.7/site-packages/certifi/__init__.py
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
from .core import where
|
||||||
|
|
||||||
|
__version__ = "2019.11.28"
|
2
venv/lib/python3.7/site-packages/certifi/__main__.py
Normal file
2
venv/lib/python3.7/site-packages/certifi/__main__.py
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
from certifi import where
|
||||||
|
print(where())
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
4602
venv/lib/python3.7/site-packages/certifi/cacert.pem
Normal file
4602
venv/lib/python3.7/site-packages/certifi/cacert.pem
Normal file
File diff suppressed because it is too large
Load Diff
15
venv/lib/python3.7/site-packages/certifi/core.py
Normal file
15
venv/lib/python3.7/site-packages/certifi/core.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
certifi.py
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
This module returns the installation location of cacert.pem.
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
def where():
|
||||||
|
f = os.path.dirname(__file__)
|
||||||
|
|
||||||
|
return os.path.join(f, 'cacert.pem')
|
@ -0,0 +1,70 @@
|
|||||||
|
Chardet: The Universal Character Encoding Detector
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/travis/chardet/chardet/stable.svg
|
||||||
|
:alt: Build status
|
||||||
|
:target: https://travis-ci.org/chardet/chardet
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/coveralls/chardet/chardet/stable.svg
|
||||||
|
:target: https://coveralls.io/r/chardet/chardet
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/pypi/v/chardet.svg
|
||||||
|
:target: https://warehouse.python.org/project/chardet/
|
||||||
|
:alt: Latest version on PyPI
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/pypi/l/chardet.svg
|
||||||
|
:alt: License
|
||||||
|
|
||||||
|
|
||||||
|
Detects
|
||||||
|
- ASCII, UTF-8, UTF-16 (2 variants), UTF-32 (4 variants)
|
||||||
|
- Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified Chinese)
|
||||||
|
- EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP (Japanese)
|
||||||
|
- EUC-KR, ISO-2022-KR (Korean)
|
||||||
|
- KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (Cyrillic)
|
||||||
|
- ISO-8859-5, windows-1251 (Bulgarian)
|
||||||
|
- ISO-8859-1, windows-1252 (Western European languages)
|
||||||
|
- ISO-8859-7, windows-1253 (Greek)
|
||||||
|
- ISO-8859-8, windows-1255 (Visual and Logical Hebrew)
|
||||||
|
- TIS-620 (Thai)
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Our ISO-8859-2 and windows-1250 (Hungarian) probers have been temporarily
|
||||||
|
disabled until we can retrain the models.
|
||||||
|
|
||||||
|
Requires Python 2.6, 2.7, or 3.3+.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
Install from `PyPI <https://pypi.python.org/pypi/chardet>`_::
|
||||||
|
|
||||||
|
pip install chardet
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
For users, docs are now available at https://chardet.readthedocs.io/.
|
||||||
|
|
||||||
|
Command-line Tool
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
chardet comes with a command-line script which reports on the encodings of one
|
||||||
|
or more files::
|
||||||
|
|
||||||
|
% chardetect somefile someotherfile
|
||||||
|
somefile: windows-1252 with confidence 0.5
|
||||||
|
someotherfile: ascii with confidence 1.0
|
||||||
|
|
||||||
|
About
|
||||||
|
-----
|
||||||
|
|
||||||
|
This is a continuation of Mark Pilgrim's excellent chardet. Previously, two
|
||||||
|
versions needed to be maintained: one that supported python 2.x and one that
|
||||||
|
supported python 3.x. We've recently merged with `Ian Cordasco <https://github.com/sigmavirus24>`_'s
|
||||||
|
`charade <https://github.com/sigmavirus24/charade>`_ fork, so now we have one
|
||||||
|
coherent version that works for Python 2.6+.
|
||||||
|
|
||||||
|
:maintainer: Dan Blanchard
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
pip
|
@ -0,0 +1,96 @@
|
|||||||
|
Metadata-Version: 2.0
|
||||||
|
Name: chardet
|
||||||
|
Version: 3.0.4
|
||||||
|
Summary: Universal encoding detector for Python 2 and 3
|
||||||
|
Home-page: https://github.com/chardet/chardet
|
||||||
|
Author: Daniel Blanchard
|
||||||
|
Author-email: dan.blanchard@gmail.com
|
||||||
|
License: LGPL
|
||||||
|
Keywords: encoding,i18n,xml
|
||||||
|
Platform: UNKNOWN
|
||||||
|
Classifier: Development Status :: 4 - Beta
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Classifier: Programming Language :: Python
|
||||||
|
Classifier: Programming Language :: Python :: 2
|
||||||
|
Classifier: Programming Language :: Python :: 2.6
|
||||||
|
Classifier: Programming Language :: Python :: 2.7
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: Programming Language :: Python :: 3.3
|
||||||
|
Classifier: Programming Language :: Python :: 3.4
|
||||||
|
Classifier: Programming Language :: Python :: 3.5
|
||||||
|
Classifier: Programming Language :: Python :: 3.6
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Classifier: Topic :: Text Processing :: Linguistic
|
||||||
|
|
||||||
|
Chardet: The Universal Character Encoding Detector
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/travis/chardet/chardet/stable.svg
|
||||||
|
:alt: Build status
|
||||||
|
:target: https://travis-ci.org/chardet/chardet
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/coveralls/chardet/chardet/stable.svg
|
||||||
|
:target: https://coveralls.io/r/chardet/chardet
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/pypi/v/chardet.svg
|
||||||
|
:target: https://warehouse.python.org/project/chardet/
|
||||||
|
:alt: Latest version on PyPI
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/pypi/l/chardet.svg
|
||||||
|
:alt: License
|
||||||
|
|
||||||
|
|
||||||
|
Detects
|
||||||
|
- ASCII, UTF-8, UTF-16 (2 variants), UTF-32 (4 variants)
|
||||||
|
- Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified Chinese)
|
||||||
|
- EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP (Japanese)
|
||||||
|
- EUC-KR, ISO-2022-KR (Korean)
|
||||||
|
- KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (Cyrillic)
|
||||||
|
- ISO-8859-5, windows-1251 (Bulgarian)
|
||||||
|
- ISO-8859-1, windows-1252 (Western European languages)
|
||||||
|
- ISO-8859-7, windows-1253 (Greek)
|
||||||
|
- ISO-8859-8, windows-1255 (Visual and Logical Hebrew)
|
||||||
|
- TIS-620 (Thai)
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Our ISO-8859-2 and windows-1250 (Hungarian) probers have been temporarily
|
||||||
|
disabled until we can retrain the models.
|
||||||
|
|
||||||
|
Requires Python 2.6, 2.7, or 3.3+.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
Install from `PyPI <https://pypi.python.org/pypi/chardet>`_::
|
||||||
|
|
||||||
|
pip install chardet
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
For users, docs are now available at https://chardet.readthedocs.io/.
|
||||||
|
|
||||||
|
Command-line Tool
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
chardet comes with a command-line script which reports on the encodings of one
|
||||||
|
or more files::
|
||||||
|
|
||||||
|
% chardetect somefile someotherfile
|
||||||
|
somefile: windows-1252 with confidence 0.5
|
||||||
|
someotherfile: ascii with confidence 1.0
|
||||||
|
|
||||||
|
About
|
||||||
|
-----
|
||||||
|
|
||||||
|
This is a continuation of Mark Pilgrim's excellent chardet. Previously, two
|
||||||
|
versions needed to be maintained: one that supported python 2.x and one that
|
||||||
|
supported python 3.x. We've recently merged with `Ian Cordasco <https://github.com/sigmavirus24>`_'s
|
||||||
|
`charade <https://github.com/sigmavirus24/charade>`_ fork, so now we have one
|
||||||
|
coherent version that works for Python 2.6+.
|
||||||
|
|
||||||
|
:maintainer: Dan Blanchard
|
||||||
|
|
||||||
|
|
@ -0,0 +1,91 @@
|
|||||||
|
../../../bin/chardetect,sha256=phACS7mCLmuIAVplmq_tFlX4pcFA4mUpXtDPSJodYeo,258
|
||||||
|
chardet-3.0.4.dist-info/DESCRIPTION.rst,sha256=PQ4sBsMyKFZkjC6QpmbpLn0UtCNyeb-ZqvCGEgyZMGk,2174
|
||||||
|
chardet-3.0.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
chardet-3.0.4.dist-info/METADATA,sha256=RV_2I4B1Z586DL8oVO5Kp7X5bUdQ5EuKAvNoAEF8wSw,3239
|
||||||
|
chardet-3.0.4.dist-info/RECORD,,
|
||||||
|
chardet-3.0.4.dist-info/WHEEL,sha256=o2k-Qa-RMNIJmUdIc7KU6VWR_ErNRbWNlxDIpl7lm34,110
|
||||||
|
chardet-3.0.4.dist-info/entry_points.txt,sha256=fAMmhu5eJ-zAJ-smfqQwRClQ3-nozOCmvJ6-E8lgGJo,60
|
||||||
|
chardet-3.0.4.dist-info/metadata.json,sha256=0htbRM18ujyGZDdfowgAqj6Hq2eQtwzwyhaEveKntgo,1375
|
||||||
|
chardet-3.0.4.dist-info/top_level.txt,sha256=AowzBbZy4x8EirABDdJSLJZMkJ_53iIag8xfKR6D7kI,8
|
||||||
|
chardet/__init__.py,sha256=YsP5wQlsHJ2auF1RZJfypiSrCA7_bQiRm3ES_NI76-Y,1559
|
||||||
|
chardet/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/big5freq.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/big5prober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/chardistribution.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/charsetgroupprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/charsetprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/codingstatemachine.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/compat.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/cp949prober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/enums.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/escprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/escsm.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/eucjpprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/euckrfreq.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/euckrprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/euctwfreq.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/euctwprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/gb2312freq.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/gb2312prober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/hebrewprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/jisfreq.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/jpcntx.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/langbulgarianmodel.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/langcyrillicmodel.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/langgreekmodel.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/langhebrewmodel.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/langhungarianmodel.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/langthaimodel.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/langturkishmodel.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/latin1prober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/mbcharsetprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/mbcsgroupprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/mbcssm.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/sbcharsetprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/sbcsgroupprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/sjisprober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/universaldetector.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/utf8prober.cpython-37.pyc,,
|
||||||
|
chardet/__pycache__/version.cpython-37.pyc,,
|
||||||
|
chardet/big5freq.py,sha256=D_zK5GyzoVsRes0HkLJziltFQX0bKCLOrFe9_xDvO_8,31254
|
||||||
|
chardet/big5prober.py,sha256=kBxHbdetBpPe7xrlb-e990iot64g_eGSLd32lB7_h3M,1757
|
||||||
|
chardet/chardistribution.py,sha256=3woWS62KrGooKyqz4zQSnjFbJpa6V7g02daAibTwcl8,9411
|
||||||
|
chardet/charsetgroupprober.py,sha256=6bDu8YIiRuScX4ca9Igb0U69TA2PGXXDej6Cc4_9kO4,3787
|
||||||
|
chardet/charsetprober.py,sha256=KSmwJErjypyj0bRZmC5F5eM7c8YQgLYIjZXintZNstg,5110
|
||||||
|
chardet/cli/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
||||||
|
chardet/cli/__pycache__/__init__.cpython-37.pyc,,
|
||||||
|
chardet/cli/__pycache__/chardetect.cpython-37.pyc,,
|
||||||
|
chardet/cli/chardetect.py,sha256=YBO8L4mXo0WR6_-Fjh_8QxPBoEBNqB9oNxNrdc54AQs,2738
|
||||||
|
chardet/codingstatemachine.py,sha256=VYp_6cyyki5sHgXDSZnXW4q1oelHc3cu9AyQTX7uug8,3590
|
||||||
|
chardet/compat.py,sha256=PKTzHkSbtbHDqS9PyujMbX74q1a8mMpeQTDVsQhZMRw,1134
|
||||||
|
chardet/cp949prober.py,sha256=TZ434QX8zzBsnUvL_8wm4AQVTZ2ZkqEEQL_lNw9f9ow,1855
|
||||||
|
chardet/enums.py,sha256=Aimwdb9as1dJKZaFNUH2OhWIVBVd6ZkJJ_WK5sNY8cU,1661
|
||||||
|
chardet/escprober.py,sha256=kkyqVg1Yw3DIOAMJ2bdlyQgUFQhuHAW8dUGskToNWSc,3950
|
||||||
|
chardet/escsm.py,sha256=RuXlgNvTIDarndvllNCk5WZBIpdCxQ0kcd9EAuxUh84,10510
|
||||||
|
chardet/eucjpprober.py,sha256=iD8Jdp0ISRjgjiVN7f0e8xGeQJ5GM2oeZ1dA8nbSeUw,3749
|
||||||
|
chardet/euckrfreq.py,sha256=-7GdmvgWez4-eO4SuXpa7tBiDi5vRXQ8WvdFAzVaSfo,13546
|
||||||
|
chardet/euckrprober.py,sha256=MqFMTQXxW4HbzIpZ9lKDHB3GN8SP4yiHenTmf8g_PxY,1748
|
||||||
|
chardet/euctwfreq.py,sha256=No1WyduFOgB5VITUA7PLyC5oJRNzRyMbBxaKI1l16MA,31621
|
||||||
|
chardet/euctwprober.py,sha256=13p6EP4yRaxqnP4iHtxHOJ6R2zxHq1_m8hTRjzVZ95c,1747
|
||||||
|
chardet/gb2312freq.py,sha256=JX8lsweKLmnCwmk8UHEQsLgkr_rP_kEbvivC4qPOrlc,20715
|
||||||
|
chardet/gb2312prober.py,sha256=gGvIWi9WhDjE-xQXHvNIyrnLvEbMAYgyUSZ65HUfylw,1754
|
||||||
|
chardet/hebrewprober.py,sha256=c3SZ-K7hvyzGY6JRAZxJgwJ_sUS9k0WYkvMY00YBYFo,13838
|
||||||
|
chardet/jisfreq.py,sha256=vpmJv2Bu0J8gnMVRPHMFefTRvo_ha1mryLig8CBwgOg,25777
|
||||||
|
chardet/jpcntx.py,sha256=PYlNqRUQT8LM3cT5FmHGP0iiscFlTWED92MALvBungo,19643
|
||||||
|
chardet/langbulgarianmodel.py,sha256=1HqQS9Pbtnj1xQgxitJMvw8X6kKr5OockNCZWfEQrPE,12839
|
||||||
|
chardet/langcyrillicmodel.py,sha256=LODajvsetH87yYDDQKA2CULXUH87tI223dhfjh9Zx9c,17948
|
||||||
|
chardet/langgreekmodel.py,sha256=8YAW7bU8YwSJap0kIJSbPMw1BEqzGjWzqcqf0WgUKAA,12688
|
||||||
|
chardet/langhebrewmodel.py,sha256=JSnqmE5E62tDLTPTvLpQsg5gOMO4PbdWRvV7Avkc0HA,11345
|
||||||
|
chardet/langhungarianmodel.py,sha256=RhapYSG5l0ZaO-VV4Fan5sW0WRGQqhwBM61yx3yxyOA,12592
|
||||||
|
chardet/langthaimodel.py,sha256=8l0173Gu_W6G8mxmQOTEF4ls2YdE7FxWf3QkSxEGXJQ,11290
|
||||||
|
chardet/langturkishmodel.py,sha256=W22eRNJsqI6uWAfwXSKVWWnCerYqrI8dZQTm_M0lRFk,11102
|
||||||
|
chardet/latin1prober.py,sha256=S2IoORhFk39FEFOlSFWtgVybRiP6h7BlLldHVclNkU8,5370
|
||||||
|
chardet/mbcharsetprober.py,sha256=AR95eFH9vuqSfvLQZN-L5ijea25NOBCoXqw8s5O9xLQ,3413
|
||||||
|
chardet/mbcsgroupprober.py,sha256=h6TRnnYq2OxG1WdD5JOyxcdVpn7dG0q-vB8nWr5mbh4,2012
|
||||||
|
chardet/mbcssm.py,sha256=SY32wVIF3HzcjY3BaEspy9metbNSKxIIB0RKPn7tjpI,25481
|
||||||
|
chardet/sbcharsetprober.py,sha256=LDSpCldDCFlYwUkGkwD2oFxLlPWIWXT09akH_2PiY74,5657
|
||||||
|
chardet/sbcsgroupprober.py,sha256=1IprcCB_k1qfmnxGC6MBbxELlKqD3scW6S8YIwdeyXA,3546
|
||||||
|
chardet/sjisprober.py,sha256=IIt-lZj0WJqK4rmUZzKZP4GJlE8KUEtFYVuY96ek5MQ,3774
|
||||||
|
chardet/universaldetector.py,sha256=qL0174lSZE442eB21nnktT9_VcAye07laFWUeUrjttY,12485
|
||||||
|
chardet/utf8prober.py,sha256=IdD8v3zWOsB8OLiyPi-y_fqwipRFxV9Nc1eKBLSuIEw,2766
|
||||||
|
chardet/version.py,sha256=sp3B08mrDXB-pf3K9fqJ_zeDHOCLC8RrngQyDFap_7g,242
|
@ -0,0 +1,6 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: bdist_wheel (0.29.0)
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py2-none-any
|
||||||
|
Tag: py3-none-any
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
[console_scripts]
|
||||||
|
chardetect = chardet.cli.chardetect:main
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
{"classifiers": ["Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Linguistic"], "extensions": {"python.commands": {"wrap_console": {"chardetect": "chardet.cli.chardetect:main"}}, "python.details": {"contacts": [{"email": "dan.blanchard@gmail.com", "name": "Daniel Blanchard", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://github.com/chardet/chardet"}}, "python.exports": {"console_scripts": {"chardetect": "chardet.cli.chardetect:main"}}}, "generator": "bdist_wheel (0.29.0)", "keywords": ["encoding", "i18n", "xml"], "license": "LGPL", "metadata_version": "2.0", "name": "chardet", "summary": "Universal encoding detector for Python 2 and 3", "test_requires": [{"requires": ["hypothesis", "pytest"]}], "version": "3.0.4"}
|
@ -0,0 +1 @@
|
|||||||
|
chardet
|
39
venv/lib/python3.7/site-packages/chardet/__init__.py
Normal file
39
venv/lib/python3.7/site-packages/chardet/__init__.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
######################## BEGIN LICENSE BLOCK ########################
|
||||||
|
# This library is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
# License as published by the Free Software Foundation; either
|
||||||
|
# version 2.1 of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This library 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
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this library; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||||
|
# 02110-1301 USA
|
||||||
|
######################### END LICENSE BLOCK #########################
|
||||||
|
|
||||||
|
|
||||||
|
from .compat import PY2, PY3
|
||||||
|
from .universaldetector import UniversalDetector
|
||||||
|
from .version import __version__, VERSION
|
||||||
|
|
||||||
|
|
||||||
|
def detect(byte_str):
|
||||||
|
"""
|
||||||
|
Detect the encoding of the given byte string.
|
||||||
|
|
||||||
|
:param byte_str: The byte sequence to examine.
|
||||||
|
:type byte_str: ``bytes`` or ``bytearray``
|
||||||
|
"""
|
||||||
|
if not isinstance(byte_str, bytearray):
|
||||||
|
if not isinstance(byte_str, bytes):
|
||||||
|
raise TypeError('Expected object of type bytes or bytearray, got: '
|
||||||
|
'{0}'.format(type(byte_str)))
|
||||||
|
else:
|
||||||
|
byte_str = bytearray(byte_str)
|
||||||
|
detector = UniversalDetector()
|
||||||
|
detector.feed(byte_str)
|
||||||
|
return detector.close()
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user