mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 19:23:03 +02:00
Working program
This commit is contained in:
parent
92a5c0d9e0
commit
7435a26030
12
.breakpoints
Normal file
12
.breakpoints
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"files": {
|
||||
"report.tex": [
|
||||
{
|
||||
"id": "a2e5af68-47fa-4920-aea5-ea9002a21051",
|
||||
"line": 1,
|
||||
"version": 8,
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
108
.replit
Normal file
108
.replit
Normal file
@ -0,0 +1,108 @@
|
||||
# The command that runs the program. If the interpreter field is set, it will have priority and this run command will do nothing
|
||||
run = "python3 main.py"
|
||||
|
||||
# The primary language of the repl. There can be others, though!
|
||||
language = "python3"
|
||||
entrypoint = "main.py"
|
||||
# A list of globs that specify which files and directories should
|
||||
# be hidden in the workspace.
|
||||
hidden = ["venv", ".config", "**/__pycache__", "**/.mypy_cache", "**/*.pyc"]
|
||||
|
||||
# Specifies which nix channel to use when building the environment.
|
||||
[nix]
|
||||
channel = "stable-22_11"
|
||||
|
||||
# The command to start the interpreter.
|
||||
[interpreter]
|
||||
[interpreter.command]
|
||||
args = [
|
||||
"stderred",
|
||||
"--",
|
||||
"prybar-python310",
|
||||
"-q",
|
||||
"--ps1",
|
||||
"\u0001\u001b[33m\u0002\u0001\u001b[00m\u0002 ",
|
||||
"-i",
|
||||
]
|
||||
env = { LD_LIBRARY_PATH = "$PYTHON_LD_LIBRARY_PATH" }
|
||||
|
||||
[env]
|
||||
VIRTUAL_ENV = "/home/runner/${REPL_SLUG}/venv"
|
||||
PATH = "${VIRTUAL_ENV}/bin"
|
||||
PYTHONPATH = "$PYTHONHOME/lib/python3.10:${VIRTUAL_ENV}/lib/python3.10/site-packages"
|
||||
REPLIT_POETRY_PYPI_REPOSITORY = "https://package-proxy.replit.com/pypi/"
|
||||
MPLBACKEND = "TkAgg"
|
||||
POETRY_CACHE_DIR = "${HOME}/${REPL_SLUG}/.cache/pypoetry"
|
||||
|
||||
# Enable unit tests. This is only supported for a few languages.
|
||||
[unitTest]
|
||||
language = "python3"
|
||||
|
||||
# Add a debugger!
|
||||
[debugger]
|
||||
support = true
|
||||
|
||||
# How to start the debugger.
|
||||
[debugger.interactive]
|
||||
transport = "localhost:0"
|
||||
startCommand = ["dap-python", "main.py"]
|
||||
|
||||
# How to communicate with the debugger.
|
||||
[debugger.interactive.integratedAdapter]
|
||||
dapTcpAddress = "localhost:0"
|
||||
|
||||
# How to tell the debugger to start a debugging session.
|
||||
[debugger.interactive.initializeMessage]
|
||||
command = "initialize"
|
||||
type = "request"
|
||||
|
||||
[debugger.interactive.initializeMessage.arguments]
|
||||
adapterID = "debugpy"
|
||||
clientID = "replit"
|
||||
clientName = "replit.com"
|
||||
columnsStartAt1 = true
|
||||
linesStartAt1 = true
|
||||
locale = "en-us"
|
||||
pathFormat = "path"
|
||||
supportsInvalidatedEvent = true
|
||||
supportsProgressReporting = true
|
||||
supportsRunInTerminalRequest = true
|
||||
supportsVariablePaging = true
|
||||
supportsVariableType = true
|
||||
|
||||
# How to tell the debugger to start the debuggee application.
|
||||
[debugger.interactive.launchMessage]
|
||||
command = "attach"
|
||||
type = "request"
|
||||
|
||||
[debugger.interactive.launchMessage.arguments]
|
||||
logging = {}
|
||||
|
||||
# Configures the packager.
|
||||
[packager]
|
||||
language = "python3"
|
||||
ignoredPackages = ["unit_tests"]
|
||||
|
||||
[packager.features]
|
||||
enabledForHosting = false
|
||||
# Enable searching packages from the sidebar.
|
||||
packageSearch = true
|
||||
# Enable guessing what packages are needed from the code.
|
||||
guessImports = true
|
||||
|
||||
# These are the files that need to be preserved when this
|
||||
# language template is used as the base language template
|
||||
# for Python repos imported from GitHub
|
||||
[gitHubImport]
|
||||
requiredFiles = [".replit", "replit.nix", ".config", "venv"]
|
||||
|
||||
[languages]
|
||||
|
||||
[languages.python3]
|
||||
pattern = "**/*.py"
|
||||
|
||||
[languages.python3.languageServer]
|
||||
start = "pylsp"
|
||||
|
||||
[deployment]
|
||||
run = ["sh", "-c", "python3 main.py"]
|
||||
BIN
EARIN_LAB_Instruction.pdf
Normal file
BIN
EARIN_LAB_Instruction.pdf
Normal file
Binary file not shown.
BIN
EARIN_Lab1.pdf
Normal file
BIN
EARIN_Lab1.pdf
Normal file
Binary file not shown.
145
main.py
Normal file
145
main.py
Normal file
@ -0,0 +1,145 @@
|
||||
"""
|
||||
Write a program that solves a maze using greedy best-first search algorithm.
|
||||
The maze is a 2D grid with empty space, walls, a start, and an end position.
|
||||
The objective is to find a path from start to end position.
|
||||
The maze should be loaded from file. A step-by-step visualization of the
|
||||
algorithm is required. It can be done in the console and an interface may be
|
||||
as simple as possible (but of course it does not have to). Example solution:
|
||||
https://angeluriot.com/maze_solver/.
|
||||
Test multiple heuristics (at least two) h(n) and discuss the differences be-
|
||||
tween the obtained results.
|
||||
"""
|
||||
""" Technical requirements:
|
||||
- implemented in Python.
|
||||
- adheres to basic standards of lean coding in accordance to PEP8
|
||||
- comments in the crucial parts to help with readability and understanding.
|
||||
- The clear instruction how to run and test the code should be included.
|
||||
"""
|
||||
"""
|
||||
Thinks that do not work:
|
||||
Does not work if no Start (Should print out NO START FOUND)
|
||||
Does not work if no End (Should print out NO END FOUND)
|
||||
Does not work if no path (Should print out NO PATH FOUND)
|
||||
"""
|
||||
import heapq
|
||||
|
||||
|
||||
class MazeSolver:
|
||||
|
||||
# self corresponds to "this" in js, it refers to object of MazeSolver class
|
||||
def __init__(self, maze):
|
||||
# assign readed maze 2D array to parameter from class MazeSolver
|
||||
self.maze = maze
|
||||
self.start, self.end = self.find_start_and_end()
|
||||
|
||||
# go through each character in 2D array and find one that corresponds to Start/End character
|
||||
|
||||
def find_start_and_end(self):
|
||||
start = end = None
|
||||
for row in range(len(self.maze)):
|
||||
for col in range(len(self.maze[row])):
|
||||
if self.maze[row][col] == 'S':
|
||||
start = (row, col)
|
||||
elif self.maze[row][col] == 'E':
|
||||
end = (row, col)
|
||||
if start != None and end != None:
|
||||
return start, end
|
||||
print(f"DID NOT FOUND START OR END, Start: {start}, End: {end}")
|
||||
|
||||
# Go through each neighboor
|
||||
# N
|
||||
# N * N
|
||||
# N
|
||||
# If it is not a "wall" (#) add its position to list of neighbors
|
||||
|
||||
def get_neighbors(self, position):
|
||||
row, col = position
|
||||
neighbors = []
|
||||
if row > 0 and self.maze[row - 1][col] != '#':
|
||||
neighbors.append((row - 1, col))
|
||||
if col > 0 and self.maze[row][col - 1] != '#':
|
||||
neighbors.append((row, col - 1))
|
||||
if row < len(self.maze) - 1 and self.maze[row + 1][col] != '#':
|
||||
neighbors.append((row + 1, col))
|
||||
if col < len(self.maze[row]) - 1 and self.maze[row][col + 1] != '#':
|
||||
neighbors.append((row, col + 1))
|
||||
return neighbors
|
||||
|
||||
# find path through maze
|
||||
|
||||
def solve(self):
|
||||
queue = []
|
||||
# set means that values inside can not repeat
|
||||
visited = set()
|
||||
# https://docs.python.org/3/library/heapq.html
|
||||
# push onto the queue (which becomes heapq), element containinig values
|
||||
# we use heapq so the element with lowest heurisitc value will always be at the top of heap
|
||||
heapq.heappush(
|
||||
queue, (self.heuristicEuclidean(self.start), self.start, [self.start]))
|
||||
|
||||
# go through queue until it's empty
|
||||
# find neighbour (which is not wall) closests to END point (based on heuristic)
|
||||
# go there and repeat
|
||||
# if cannot find path it starts over but skips the path that lead it to dead end
|
||||
while queue:
|
||||
# pop first element of heap
|
||||
# first value is skipped and we only save current position and path on heap
|
||||
_, current, path = heapq.heappop(queue)
|
||||
# if we already visited current skip code and go to next iteration
|
||||
if current in visited:
|
||||
continue
|
||||
# if we found the end return path
|
||||
if current == self.end:
|
||||
return path
|
||||
visited.add(current)
|
||||
for neighbor in self.get_neighbors(current):
|
||||
if neighbor not in visited:
|
||||
new_path = path + [neighbor]
|
||||
heapq.heappush(queue,
|
||||
(self.heuristicEuclidean(neighbor), neighbor, new_path))
|
||||
print_maze(self.maze, new_path)
|
||||
print()
|
||||
|
||||
# This heuristic returns the Manhatan distance between the given position and the maze's end
|
||||
def heuristicManhatan(self, position):
|
||||
return abs(position[0] - self.end[0]) + abs(position[1] - self.end[1])
|
||||
|
||||
# This heuristic returns the Euclidean distance between the given position and the maze's end
|
||||
def heuristicEuclidean(self, position):
|
||||
return (abs(position[0] - self.end[0])**2 +
|
||||
abs(position[1] - self.end[1])**2)**0.5
|
||||
|
||||
|
||||
# Open and load text file to array
|
||||
def load_maze(filename):
|
||||
# Open for reading only and save to fileContents
|
||||
fileContents = open(filename, 'r')
|
||||
# strip() removes extra white spaces from the beginning and the end of a string
|
||||
# list() changes string to array of chars
|
||||
# Inside of square brackets we will have an array of characters for each line of file
|
||||
# after going through every line in a file we will have 2D array of arrays of characters of every line
|
||||
maze = [list(line.strip()) for line in fileContents]
|
||||
return maze
|
||||
|
||||
|
||||
def print_maze(maze, path=None):
|
||||
if path is None:
|
||||
path = []
|
||||
for row in range(len(maze)):
|
||||
for col in range(len(maze[row])):
|
||||
if (row, col) in path:
|
||||
print('*', end='')
|
||||
else:
|
||||
print(maze[row][col], end='')
|
||||
print()
|
||||
|
||||
|
||||
# Ran first in the code
|
||||
if __name__ == '__main__':
|
||||
# Open and load text file to array
|
||||
maze = load_maze('mazes/mazeDeadEnd.txt')
|
||||
# Initialize MazeSolver object with maze as paramater
|
||||
solver = MazeSolver(maze)
|
||||
# Find path using MazeSolver solve method
|
||||
path = solver.solve()
|
||||
print_maze(maze, path)
|
||||
10
maze.txt
Normal file
10
maze.txt
Normal file
@ -0,0 +1,10 @@
|
||||
##########
|
||||
#S #
|
||||
# #### #
|
||||
# # #
|
||||
# # ## #
|
||||
# # #
|
||||
##### ##
|
||||
# # #
|
||||
# #E #
|
||||
##########
|
||||
5
mazes/mazeDeadEnd.txt
Normal file
5
mazes/mazeDeadEnd.txt
Normal file
@ -0,0 +1,5 @@
|
||||
#################
|
||||
# #
|
||||
# ####### #
|
||||
#S # E#
|
||||
#################
|
||||
32
mazes/mazeNoEnd.txt
Normal file
32
mazes/mazeNoEnd.txt
Normal file
@ -0,0 +1,32 @@
|
||||
################################
|
||||
# S # # #
|
||||
# ######### #### ## # #
|
||||
# # # # #
|
||||
# # ######### ####### #
|
||||
# # # #
|
||||
# # #### # ####### #######
|
||||
# # # # # #
|
||||
# ####### ########### # #
|
||||
# # ##### #
|
||||
#### ######### # # # #
|
||||
# # # #### #
|
||||
#### ########### # #
|
||||
# # ##### #####
|
||||
# ######### # # #
|
||||
# ###### #####
|
||||
# ####### ####### #
|
||||
# # # # #####
|
||||
# # ######### # # #
|
||||
# # # # ######
|
||||
# ####### ######### #
|
||||
# # #
|
||||
# ######### ############ #
|
||||
# # # #
|
||||
# ######### #### ####### #
|
||||
# # # # #
|
||||
# # ####### # ######### #
|
||||
# # # # # #
|
||||
# # # #### ######### ####
|
||||
# # # # #
|
||||
# ######### ###### ##### #
|
||||
################################
|
||||
32
mazes/mazeNoEndNoStart.txt
Normal file
32
mazes/mazeNoEndNoStart.txt
Normal file
@ -0,0 +1,32 @@
|
||||
################################
|
||||
# # # #
|
||||
# ######### #### ## # #
|
||||
# # # # #
|
||||
# # ######### ####### #
|
||||
# # # #
|
||||
# # #### # ####### #######
|
||||
# # # # # #
|
||||
# ####### ########### # #
|
||||
# # ##### #
|
||||
#### ######### # # # #
|
||||
# # # #### #
|
||||
#### ########### # #
|
||||
# # ##### #####
|
||||
# ######### # # #
|
||||
# ###### #####
|
||||
# ####### ####### #
|
||||
# # # # #####
|
||||
# # ######### # # #
|
||||
# # # # ######
|
||||
# ####### ######### #
|
||||
# # #
|
||||
# ######### ############ #
|
||||
# # # #
|
||||
# ######### #### ####### #
|
||||
# # # # #
|
||||
# # ####### # ######### #
|
||||
# # # # # #
|
||||
# # # #### ######### ####
|
||||
# # # # #
|
||||
# ######### ###### ##### #
|
||||
################################
|
||||
32
mazes/mazeNoPath.txt
Normal file
32
mazes/mazeNoPath.txt
Normal file
@ -0,0 +1,32 @@
|
||||
################################
|
||||
# # # #
|
||||
# ######### #### ## # #
|
||||
# # # # #
|
||||
# # ######### ####### #
|
||||
# # # #
|
||||
# # #### # ####### #######
|
||||
# # # # # #
|
||||
# ####### ########### # #
|
||||
# # ##### #
|
||||
#### ######### # # # #
|
||||
# # # #### #
|
||||
#### ########### # #
|
||||
# # ##### #####
|
||||
# ######### # # #
|
||||
# ###### #####
|
||||
# ####### ####### #
|
||||
# # # # #####
|
||||
# # ######### # # #
|
||||
# # # # ######
|
||||
# ####### ######### #
|
||||
# # #
|
||||
# ######### ############ #
|
||||
# # # #
|
||||
# ######### #### ####### #
|
||||
# # # # #
|
||||
# # ####### # ######### #
|
||||
# # # # # #
|
||||
# # # #### ######### ####
|
||||
# # # # # #
|
||||
# ######### ###### #####E#
|
||||
################################
|
||||
32
mazes/mazeNoStart.txt
Normal file
32
mazes/mazeNoStart.txt
Normal file
@ -0,0 +1,32 @@
|
||||
################################
|
||||
# # # #
|
||||
# ######### #### ## # #
|
||||
# # # # #
|
||||
# # ######### ####### #
|
||||
# # # #
|
||||
# # #### # ####### #######
|
||||
# # # # # #
|
||||
# ####### ########### # #
|
||||
# # ##### #
|
||||
#### ######### # # # #
|
||||
# # # #### #
|
||||
#### ########### # #
|
||||
# # ##### #####
|
||||
# ######### # # #
|
||||
# ###### #####
|
||||
# ####### ####### #
|
||||
# # # # #####
|
||||
# # ######### # # #
|
||||
# # # # ######
|
||||
# ####### ######### #
|
||||
# # #
|
||||
# ######### ############ #
|
||||
# # # #
|
||||
# ######### #### ####### #
|
||||
# # # # #
|
||||
# # ####### # ######### #
|
||||
# # # # # #
|
||||
# # # #### ######### ####
|
||||
# # # # #
|
||||
# ######### ###### #####E#
|
||||
################################
|
||||
32
mazes/mazeNoStartNoPath.txt
Normal file
32
mazes/mazeNoStartNoPath.txt
Normal file
@ -0,0 +1,32 @@
|
||||
################################
|
||||
# S # # #
|
||||
# ######### #### ## # #
|
||||
# # # # #
|
||||
# # ######### ####### #
|
||||
# # # #
|
||||
# # #### # ####### #######
|
||||
# # # # # #
|
||||
# ####### ########### # #
|
||||
# # ##### #
|
||||
#### ######### # # # #
|
||||
# # # #### #
|
||||
#### ########### # #
|
||||
# # ##### #####
|
||||
# ######### # # #
|
||||
# ###### #####
|
||||
# ####### ####### #
|
||||
# # # # #####
|
||||
# # ######### # # #
|
||||
# # # # ######
|
||||
# ####### ######### #
|
||||
# # #
|
||||
# ######### ############ #
|
||||
# # # #
|
||||
# ######### #### ####### #
|
||||
# # # # #
|
||||
# # ####### # ######### #
|
||||
# # # # # #
|
||||
# # # #### ######### ####
|
||||
# # # # # #
|
||||
# ######### ###### #####E#
|
||||
################################
|
||||
664
poetry.lock
generated
Normal file
664
poetry.lock
generated
Normal file
@ -0,0 +1,664 @@
|
||||
[[package]]
|
||||
name = "aiohttp"
|
||||
version = "3.8.3"
|
||||
description = "Async http client/server framework (asyncio)"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.dependencies]
|
||||
aiosignal = ">=1.1.2"
|
||||
async-timeout = ">=4.0.0a3,<5.0"
|
||||
attrs = ">=17.3.0"
|
||||
charset-normalizer = ">=2.0,<3.0"
|
||||
frozenlist = ">=1.1.1"
|
||||
multidict = ">=4.5,<7.0"
|
||||
yarl = ">=1.0,<2.0"
|
||||
|
||||
[package.extras]
|
||||
speedups = ["aiodns", "brotli", "cchardet"]
|
||||
|
||||
[[package]]
|
||||
name = "aiosignal"
|
||||
version = "1.3.1"
|
||||
description = "aiosignal: a list of registered asynchronous callbacks"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
frozenlist = ">=1.1.0"
|
||||
|
||||
[[package]]
|
||||
name = "argon2-cffi"
|
||||
version = "21.3.0"
|
||||
description = "The secure Argon2 password hashing algorithm."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.dependencies]
|
||||
argon2-cffi-bindings = "*"
|
||||
|
||||
[package.extras]
|
||||
dev = ["pre-commit", "cogapp", "tomli", "coverage[toml] (>=5.0.2)", "hypothesis", "pytest", "sphinx", "sphinx-notfound-page", "furo"]
|
||||
docs = ["sphinx", "sphinx-notfound-page", "furo"]
|
||||
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest"]
|
||||
|
||||
[[package]]
|
||||
name = "argon2-cffi-bindings"
|
||||
version = "21.2.0"
|
||||
description = "Low-level CFFI bindings for Argon2"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.dependencies]
|
||||
cffi = ">=1.0.1"
|
||||
|
||||
[package.extras]
|
||||
dev = ["pytest", "cogapp", "pre-commit", "wheel"]
|
||||
tests = ["pytest"]
|
||||
|
||||
[[package]]
|
||||
name = "async-timeout"
|
||||
version = "4.0.2"
|
||||
description = "Timeout context manager for asyncio programs"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[[package]]
|
||||
name = "attrs"
|
||||
version = "22.2.0"
|
||||
description = "Classes Without Boilerplate"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.extras]
|
||||
cov = ["attrs", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"]
|
||||
dev = ["attrs"]
|
||||
docs = ["furo", "sphinx", "myst-parser", "zope.interface", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"]
|
||||
tests = ["attrs", "zope.interface"]
|
||||
tests-no-zope = ["hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist", "cloudpickle", "mypy (>=0.971,<0.990)", "pytest-mypy-plugins"]
|
||||
tests_no_zope = ["hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist", "cloudpickle", "mypy (>=0.971,<0.990)", "pytest-mypy-plugins"]
|
||||
|
||||
[[package]]
|
||||
name = "certifi"
|
||||
version = "2022.12.7"
|
||||
description = "Python package for providing Mozilla's CA Bundle."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[[package]]
|
||||
name = "cffi"
|
||||
version = "1.15.1"
|
||||
description = "Foreign Function Interface for Python calling C code."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
|
||||
[package.dependencies]
|
||||
pycparser = "*"
|
||||
|
||||
[[package]]
|
||||
name = "charset-normalizer"
|
||||
version = "2.1.1"
|
||||
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6.0"
|
||||
|
||||
[package.extras]
|
||||
unicode_backport = ["unicodedata2"]
|
||||
|
||||
[[package]]
|
||||
name = "click"
|
||||
version = "8.1.3"
|
||||
description = "Composable command line interface toolkit"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
colorama = {version = "*", markers = "platform_system == \"Windows\""}
|
||||
|
||||
[[package]]
|
||||
name = "colorama"
|
||||
version = "0.4.6"
|
||||
description = "Cross-platform colored terminal text."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
|
||||
|
||||
[[package]]
|
||||
name = "cryptography"
|
||||
version = "38.0.4"
|
||||
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.dependencies]
|
||||
cffi = ">=1.12"
|
||||
|
||||
[package.extras]
|
||||
docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
|
||||
docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
|
||||
pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
|
||||
sdist = ["setuptools-rust (>=0.11.4)"]
|
||||
ssh = ["bcrypt (>=3.1.5)"]
|
||||
test = ["pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
|
||||
|
||||
[[package]]
|
||||
name = "debugpy"
|
||||
version = "1.6.5"
|
||||
description = "An implementation of the Debug Adapter Protocol for Python"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[[package]]
|
||||
name = "flask"
|
||||
version = "2.2.2"
|
||||
description = "A simple framework for building complex web applications."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
click = ">=8.0"
|
||||
importlib-metadata = {version = ">=3.6.0", markers = "python_version < \"3.10\""}
|
||||
itsdangerous = ">=2.0"
|
||||
Jinja2 = ">=3.0"
|
||||
Werkzeug = ">=2.2.2"
|
||||
|
||||
[package.extras]
|
||||
async = ["asgiref (>=3.2)"]
|
||||
dotenv = ["python-dotenv"]
|
||||
|
||||
[[package]]
|
||||
name = "frozenlist"
|
||||
version = "1.3.3"
|
||||
description = "A list-like structure which implements collections.abc.MutableSequence"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[[package]]
|
||||
name = "idna"
|
||||
version = "3.4"
|
||||
description = "Internationalized Domain Names in Applications (IDNA)"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
|
||||
[[package]]
|
||||
name = "importlib-metadata"
|
||||
version = "6.0.0"
|
||||
description = "Read metadata from Python packages"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
zipp = ">=0.5"
|
||||
|
||||
[package.extras]
|
||||
docs = ["sphinx (>=3.5)", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "furo", "sphinx-lint", "jaraco.tidelift (>=1.4)"]
|
||||
perf = ["ipython"]
|
||||
testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "flake8 (<5)", "pytest-cov", "pytest-enabler (>=1.3)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "pytest-flake8", "importlib-resources (>=1.3)"]
|
||||
|
||||
[[package]]
|
||||
name = "iso8601"
|
||||
version = "1.1.0"
|
||||
description = "Simple module to parse ISO 8601 dates"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6.2,<4.0"
|
||||
|
||||
[[package]]
|
||||
name = "itsdangerous"
|
||||
version = "2.1.2"
|
||||
description = "Safely pass data to untrusted environments and back."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[[package]]
|
||||
name = "jedi"
|
||||
version = "0.18.2"
|
||||
description = "An autocompletion tool for Python that can be used for text editors."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.dependencies]
|
||||
parso = ">=0.8.0,<0.9.0"
|
||||
|
||||
[package.extras]
|
||||
docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx-rtd-theme (==0.4.3)", "sphinx (==1.8.5)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"]
|
||||
qa = ["flake8 (==3.8.3)", "mypy (==0.782)"]
|
||||
testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "jinja2"
|
||||
version = "3.1.2"
|
||||
description = "A very fast and expressive template engine."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
MarkupSafe = ">=2.0"
|
||||
|
||||
[package.extras]
|
||||
i18n = ["Babel (>=2.7)"]
|
||||
|
||||
[[package]]
|
||||
name = "markupsafe"
|
||||
version = "2.1.2"
|
||||
description = "Safely add untrusted strings to HTML/XML markup."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[[package]]
|
||||
name = "multidict"
|
||||
version = "6.0.4"
|
||||
description = "multidict implementation"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[[package]]
|
||||
name = "numpy"
|
||||
version = "1.24.1"
|
||||
description = "Fundamental package for array computing in Python"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
|
||||
[[package]]
|
||||
name = "packaging"
|
||||
version = "23.0"
|
||||
description = "Core utilities for Python packages"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[[package]]
|
||||
name = "parso"
|
||||
version = "0.8.3"
|
||||
description = "A Python Parser"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.extras]
|
||||
qa = ["flake8 (==3.8.3)", "mypy (==0.782)"]
|
||||
testing = ["docopt", "pytest (<6.0.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "passlib"
|
||||
version = "1.7.4"
|
||||
description = "comprehensive password hashing framework supporting over 30 schemes"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
|
||||
[package.dependencies]
|
||||
argon2-cffi = {version = ">=18.2.0", optional = true, markers = "extra == \"argon2\""}
|
||||
|
||||
[package.extras]
|
||||
argon2 = ["argon2-cffi (>=18.2.0)"]
|
||||
bcrypt = ["bcrypt (>=3.1.0)"]
|
||||
build_docs = ["sphinx (>=1.6)", "sphinxcontrib-fulltoc (>=1.2.0)", "cloud-sptheme (>=1.10.1)"]
|
||||
totp = ["cryptography"]
|
||||
|
||||
[[package]]
|
||||
name = "platformdirs"
|
||||
version = "2.6.2"
|
||||
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.extras]
|
||||
docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx-autodoc-typehints (>=1.19.5)", "sphinx (>=5.3)"]
|
||||
test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest (>=7.2)"]
|
||||
|
||||
[[package]]
|
||||
name = "pluggy"
|
||||
version = "1.0.0"
|
||||
description = "plugin and hook calling mechanisms for python"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.extras]
|
||||
testing = ["pytest-benchmark", "pytest"]
|
||||
dev = ["tox", "pre-commit"]
|
||||
|
||||
[[package]]
|
||||
name = "protobuf"
|
||||
version = "4.21.12"
|
||||
description = ""
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[[package]]
|
||||
name = "pycparser"
|
||||
version = "2.21"
|
||||
description = "C parser in Python"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||
|
||||
[[package]]
|
||||
name = "pycryptodomex"
|
||||
version = "3.16.0"
|
||||
description = "Cryptographic library for Python"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||
|
||||
[[package]]
|
||||
name = "pyflakes"
|
||||
version = "2.5.0"
|
||||
description = "passive checker of Python programs"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[[package]]
|
||||
name = "pyseto"
|
||||
version = "1.7.0"
|
||||
description = "A Python implementation of PASETO/PASERK."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7,<4.0"
|
||||
|
||||
[package.dependencies]
|
||||
cryptography = ">=36,<39"
|
||||
iso8601 = ">=1.0.2,<2.0.0"
|
||||
passlib = {version = ">=1.7.4,<2.0.0", extras = ["argon2"]}
|
||||
pycryptodomex = ">=3.12.0,<4.0.0"
|
||||
|
||||
[package.extras]
|
||||
docs = ["Sphinx[docs] (>=4.3.2,<6.0.0)", "sphinx-autodoc-typehints[docs] (==1.12.0)", "sphinx-rtd-theme[docs] (>=1.0.0,<2.0.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "python-lsp-jsonrpc"
|
||||
version = "1.0.0"
|
||||
description = "JSON RPC 2.0 server library"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
|
||||
[package.dependencies]
|
||||
ujson = ">=3.0.0"
|
||||
|
||||
[package.extras]
|
||||
test = ["coverage", "pytest-cov", "pytest", "pyflakes", "pycodestyle", "pylint"]
|
||||
|
||||
[[package]]
|
||||
name = "pytoolconfig"
|
||||
version = "1.2.4"
|
||||
description = "Python tool configuration"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
packaging = ">=22.0"
|
||||
platformdirs = {version = ">=1.4.4", optional = true, markers = "extra == \"global\""}
|
||||
tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""}
|
||||
|
||||
[package.extras]
|
||||
doc = ["tabulate (>=0.8.9)", "sphinx (>=4.5.0)"]
|
||||
gen_docs = ["sphinx (>=4.5.0)", "sphinx-autodoc-typehints (>=1.18.1)", "sphinx-rtd-theme (>=1.0.0)", "pytoolconfig"]
|
||||
global = ["platformdirs (>=1.4.4)"]
|
||||
validation = ["pydantic (>=1.7.4)"]
|
||||
|
||||
[[package]]
|
||||
name = "replit"
|
||||
version = "3.2.5"
|
||||
description = "A library for interacting with features of repl.it"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.8,<4.0"
|
||||
|
||||
[package.dependencies]
|
||||
aiohttp = ">=3.6.2,<4.0.0"
|
||||
Flask = ">=2.0.0,<3.0.0"
|
||||
protobuf = ">=4.21.8,<5.0.0"
|
||||
pyseto = ">=1.6.11,<2.0.0"
|
||||
requests = ">=2.25.1,<3.0.0"
|
||||
typing_extensions = ">=3.7.4,<4.0.0"
|
||||
Werkzeug = ">=2.0.0,<3.0.0"
|
||||
|
||||
[[package]]
|
||||
name = "replit-python-lsp-server"
|
||||
version = "1.15.9"
|
||||
description = "Python Language Server for the Language Server Protocol"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
jedi = ">=0.17.2,<0.19.0"
|
||||
pluggy = ">=1.0.0"
|
||||
pyflakes = {version = ">=2.5.0,<2.6.0", optional = true, markers = "extra == \"pyflakes\""}
|
||||
python-lsp-jsonrpc = ">=1.0.0"
|
||||
rope = {version = ">0.10.5", optional = true, markers = "extra == \"rope\""}
|
||||
toml = ">=0.10.2"
|
||||
ujson = ">=3.0.0"
|
||||
whatthepatch = {version = ">=1.0.2,<2.0.0", optional = true, markers = "extra == \"yapf\""}
|
||||
yapf = {version = "*", optional = true, markers = "extra == \"yapf\""}
|
||||
|
||||
[package.extras]
|
||||
all = ["autopep8 (>=1.6.0,<1.7.0)", "flake8 (>=5.0.0,<5.1.0)", "mccabe (>=0.7.0,<0.8.0)", "pycodestyle (>=2.9.0,<2.10.0)", "pydocstyle (>=2.0.0)", "pyflakes (>=2.5.0,<2.6.0)", "pylint (>=2.5.0)", "rope (>=0.10.5)", "yapf", "whatthepatch"]
|
||||
autopep8 = ["autopep8 (>=1.6.0,<1.7.0)"]
|
||||
flake8 = ["flake8 (>=5.0.0,<5.1.0)"]
|
||||
mccabe = ["mccabe (>=0.7.0,<0.8.0)"]
|
||||
pycodestyle = ["pycodestyle (>=2.9.0,<2.10.0)"]
|
||||
pydocstyle = ["pydocstyle (>=2.0.0)"]
|
||||
pyflakes = ["pyflakes (>=2.5.0,<2.6.0)"]
|
||||
pylint = ["pylint (>=2.5.0)"]
|
||||
rope = ["rope (>0.10.5)"]
|
||||
test = ["pylint (>=2.5.0)", "pytest", "pytest-cov", "coverage", "numpy (<1.23)", "pandas", "matplotlib", "pyqt5", "flaky"]
|
||||
websockets = ["websockets (>=10.3)"]
|
||||
yapf = ["yapf", "whatthepatch (>=1.0.2,<2.0.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "requests"
|
||||
version = "2.28.2"
|
||||
description = "Python HTTP for Humans."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7, <4"
|
||||
|
||||
[package.dependencies]
|
||||
certifi = ">=2017.4.17"
|
||||
charset-normalizer = ">=2,<4"
|
||||
idna = ">=2.5,<4"
|
||||
urllib3 = ">=1.21.1,<1.27"
|
||||
|
||||
[package.extras]
|
||||
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
|
||||
use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"]
|
||||
|
||||
[[package]]
|
||||
name = "rope"
|
||||
version = "1.7.0"
|
||||
description = "a python refactoring library..."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
pytoolconfig = {version = ">=1.2.2", extras = ["global"]}
|
||||
|
||||
[package.extras]
|
||||
dev = ["pytest (>=7.0.1)", "pytest-timeout (>=2.1.0)", "build (>=0.7.0)", "pre-commit (>=2.20.0)"]
|
||||
doc = ["pytoolconfig", "sphinx (>=4.5.0)", "sphinx-autodoc-typehints (>=1.18.1)", "sphinx-rtd-theme (>=1.0.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "toml"
|
||||
version = "0.10.2"
|
||||
description = "Python Library for Tom's Obvious, Minimal Language"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||
|
||||
[[package]]
|
||||
name = "tomli"
|
||||
version = "2.0.1"
|
||||
description = "A lil' TOML parser"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[[package]]
|
||||
name = "typing-extensions"
|
||||
version = "3.10.0.2"
|
||||
description = "Backported and Experimental Type Hints for Python 3.5+"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
|
||||
[[package]]
|
||||
name = "ujson"
|
||||
version = "5.7.0"
|
||||
description = "Ultra fast JSON encoder and decoder for Python"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[[package]]
|
||||
name = "urllib3"
|
||||
version = "1.26.14"
|
||||
description = "HTTP library with thread-safe connection pooling, file post, and more."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
|
||||
|
||||
[package.extras]
|
||||
brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"]
|
||||
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"]
|
||||
socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "werkzeug"
|
||||
version = "2.2.2"
|
||||
description = "The comprehensive WSGI web application library."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
MarkupSafe = ">=2.1.1"
|
||||
|
||||
[package.extras]
|
||||
watchdog = ["watchdog"]
|
||||
|
||||
[[package]]
|
||||
name = "whatthepatch"
|
||||
version = "1.0.3"
|
||||
description = "A patch parsing and application library."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[[package]]
|
||||
name = "yapf"
|
||||
version = "0.32.0"
|
||||
description = "A formatter for Python code."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
|
||||
[[package]]
|
||||
name = "yarl"
|
||||
version = "1.8.2"
|
||||
description = "Yet another URL library"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
idna = ">=2.0"
|
||||
multidict = ">=4.0"
|
||||
|
||||
[[package]]
|
||||
name = "zipp"
|
||||
version = "3.11.0"
|
||||
description = "Backport of pathlib-compatible object wrapper for zip files"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.extras]
|
||||
docs = ["sphinx (>=3.5)", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "furo", "jaraco.tidelift (>=1.4)"]
|
||||
testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "flake8 (<5)", "pytest-cov", "pytest-enabler (>=1.3)", "jaraco.itertools", "func-timeout", "jaraco.functools", "more-itertools", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "pytest-flake8"]
|
||||
|
||||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = ">=3.8.0,<3.9"
|
||||
content-hash = "f328c469a46d9cb95c79b10c69318f07ccca3f40cc6eb43ef51c87ad2ff1879b"
|
||||
|
||||
[metadata.files]
|
||||
aiohttp = []
|
||||
aiosignal = []
|
||||
argon2-cffi = []
|
||||
argon2-cffi-bindings = []
|
||||
async-timeout = []
|
||||
attrs = []
|
||||
certifi = []
|
||||
cffi = []
|
||||
charset-normalizer = []
|
||||
click = []
|
||||
colorama = []
|
||||
cryptography = []
|
||||
debugpy = []
|
||||
flask = []
|
||||
frozenlist = []
|
||||
idna = []
|
||||
importlib-metadata = []
|
||||
iso8601 = []
|
||||
itsdangerous = []
|
||||
jedi = []
|
||||
jinja2 = []
|
||||
markupsafe = []
|
||||
multidict = []
|
||||
numpy = []
|
||||
packaging = []
|
||||
parso = []
|
||||
passlib = []
|
||||
platformdirs = []
|
||||
pluggy = []
|
||||
protobuf = []
|
||||
pycparser = []
|
||||
pycryptodomex = []
|
||||
pyflakes = []
|
||||
pyseto = []
|
||||
python-lsp-jsonrpc = []
|
||||
pytoolconfig = []
|
||||
replit = []
|
||||
replit-python-lsp-server = []
|
||||
requests = []
|
||||
rope = []
|
||||
toml = []
|
||||
tomli = []
|
||||
typing-extensions = []
|
||||
ujson = []
|
||||
urllib3 = []
|
||||
werkzeug = []
|
||||
whatthepatch = []
|
||||
yapf = []
|
||||
yarl = []
|
||||
zipp = []
|
||||
20
pyproject.toml
Normal file
20
pyproject.toml
Normal file
@ -0,0 +1,20 @@
|
||||
[tool.poetry]
|
||||
name = "python-template"
|
||||
version = "0.1.0"
|
||||
description = ""
|
||||
authors = ["Your Name <you@example.com>"]
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = ">=3.10.0,<3.11"
|
||||
numpy = "^1.22.2"
|
||||
replit = "^3.2.4"
|
||||
Flask = "^2.2.0"
|
||||
urllib3 = "^1.26.12"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
debugpy = "^1.6.2"
|
||||
replit-python-lsp-server = {extras = ["yapf", "rope", "pyflakes"], version = "^1.5.9"}
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core>=1.0.0"]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
23
replit.nix
Normal file
23
replit.nix
Normal file
@ -0,0 +1,23 @@
|
||||
{ pkgs }: {
|
||||
deps = [
|
||||
pkgs.python310Full
|
||||
pkgs.replitPackages.prybar-python310
|
||||
pkgs.replitPackages.stderred
|
||||
];
|
||||
env = {
|
||||
PYTHON_LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [
|
||||
# Needed for pandas / numpy
|
||||
pkgs.stdenv.cc.cc.lib
|
||||
pkgs.zlib
|
||||
# Needed for pygame
|
||||
pkgs.glib
|
||||
# Needed for matplotlib
|
||||
pkgs.xorg.libX11
|
||||
];
|
||||
PYTHONHOME = "${pkgs.python310Full}";
|
||||
PYTHONBIN = "${pkgs.python310Full}/bin/python3.10";
|
||||
LANG = "en_US.UTF-8";
|
||||
STDERREDBIN = "${pkgs.replitPackages.stderred}/bin/stderred";
|
||||
PRYBAR_PYTHON_BIN = "${pkgs.replitPackages.prybar-python310}/bin/prybar-python310";
|
||||
};
|
||||
}
|
||||
247
venv/bin/Activate.ps1
Normal file
247
venv/bin/Activate.ps1
Normal file
@ -0,0 +1,247 @@
|
||||
<#
|
||||
.Synopsis
|
||||
Activate a Python virtual environment for the current PowerShell session.
|
||||
|
||||
.Description
|
||||
Pushes the python executable for a virtual environment to the front of the
|
||||
$Env:PATH environment variable and sets the prompt to signify that you are
|
||||
in a Python virtual environment. Makes use of the command line switches as
|
||||
well as the `pyvenv.cfg` file values present in the virtual environment.
|
||||
|
||||
.Parameter VenvDir
|
||||
Path to the directory that contains the virtual environment to activate. The
|
||||
default value for this is the parent of the directory that the Activate.ps1
|
||||
script is located within.
|
||||
|
||||
.Parameter Prompt
|
||||
The prompt prefix to display when this virtual environment is activated. By
|
||||
default, this prompt is the name of the virtual environment folder (VenvDir)
|
||||
surrounded by parentheses and followed by a single space (ie. '(.venv) ').
|
||||
|
||||
.Example
|
||||
Activate.ps1
|
||||
Activates the Python virtual environment that contains the Activate.ps1 script.
|
||||
|
||||
.Example
|
||||
Activate.ps1 -Verbose
|
||||
Activates the Python virtual environment that contains the Activate.ps1 script,
|
||||
and shows extra information about the activation as it executes.
|
||||
|
||||
.Example
|
||||
Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
|
||||
Activates the Python virtual environment located in the specified location.
|
||||
|
||||
.Example
|
||||
Activate.ps1 -Prompt "MyPython"
|
||||
Activates the Python virtual environment that contains the Activate.ps1 script,
|
||||
and prefixes the current prompt with the specified string (surrounded in
|
||||
parentheses) while the virtual environment is active.
|
||||
|
||||
.Notes
|
||||
On Windows, it may be required to enable this Activate.ps1 script by setting the
|
||||
execution policy for the user. You can do this by issuing the following PowerShell
|
||||
command:
|
||||
|
||||
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||
|
||||
For more information on Execution Policies:
|
||||
https://go.microsoft.com/fwlink/?LinkID=135170
|
||||
|
||||
#>
|
||||
Param(
|
||||
[Parameter(Mandatory = $false)]
|
||||
[String]
|
||||
$VenvDir,
|
||||
[Parameter(Mandatory = $false)]
|
||||
[String]
|
||||
$Prompt
|
||||
)
|
||||
|
||||
<# Function declarations --------------------------------------------------- #>
|
||||
|
||||
<#
|
||||
.Synopsis
|
||||
Remove all shell session elements added by the Activate script, including the
|
||||
addition of the virtual environment's Python executable from the beginning of
|
||||
the PATH variable.
|
||||
|
||||
.Parameter NonDestructive
|
||||
If present, do not remove this function from the global namespace for the
|
||||
session.
|
||||
|
||||
#>
|
||||
function global:deactivate ([switch]$NonDestructive) {
|
||||
# Revert to original values
|
||||
|
||||
# The prior prompt:
|
||||
if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
|
||||
Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
|
||||
Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
|
||||
}
|
||||
|
||||
# The prior PYTHONHOME:
|
||||
if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
|
||||
Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
|
||||
Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
|
||||
}
|
||||
|
||||
# The prior PATH:
|
||||
if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
|
||||
Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
|
||||
Remove-Item -Path Env:_OLD_VIRTUAL_PATH
|
||||
}
|
||||
|
||||
# Just remove the VIRTUAL_ENV altogether:
|
||||
if (Test-Path -Path Env:VIRTUAL_ENV) {
|
||||
Remove-Item -Path env:VIRTUAL_ENV
|
||||
}
|
||||
|
||||
# Just remove VIRTUAL_ENV_PROMPT altogether.
|
||||
if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
|
||||
Remove-Item -Path env:VIRTUAL_ENV_PROMPT
|
||||
}
|
||||
|
||||
# Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
|
||||
if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
|
||||
Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
|
||||
}
|
||||
|
||||
# Leave deactivate function in the global namespace if requested:
|
||||
if (-not $NonDestructive) {
|
||||
Remove-Item -Path function:deactivate
|
||||
}
|
||||
}
|
||||
|
||||
<#
|
||||
.Description
|
||||
Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
|
||||
given folder, and returns them in a map.
|
||||
|
||||
For each line in the pyvenv.cfg file, if that line can be parsed into exactly
|
||||
two strings separated by `=` (with any amount of whitespace surrounding the =)
|
||||
then it is considered a `key = value` line. The left hand string is the key,
|
||||
the right hand is the value.
|
||||
|
||||
If the value starts with a `'` or a `"` then the first and last character is
|
||||
stripped from the value before being captured.
|
||||
|
||||
.Parameter ConfigDir
|
||||
Path to the directory that contains the `pyvenv.cfg` file.
|
||||
#>
|
||||
function Get-PyVenvConfig(
|
||||
[String]
|
||||
$ConfigDir
|
||||
) {
|
||||
Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
|
||||
|
||||
# Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
|
||||
$pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
|
||||
|
||||
# An empty map will be returned if no config file is found.
|
||||
$pyvenvConfig = @{ }
|
||||
|
||||
if ($pyvenvConfigPath) {
|
||||
|
||||
Write-Verbose "File exists, parse `key = value` lines"
|
||||
$pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
|
||||
|
||||
$pyvenvConfigContent | ForEach-Object {
|
||||
$keyval = $PSItem -split "\s*=\s*", 2
|
||||
if ($keyval[0] -and $keyval[1]) {
|
||||
$val = $keyval[1]
|
||||
|
||||
# Remove extraneous quotations around a string value.
|
||||
if ("'""".Contains($val.Substring(0, 1))) {
|
||||
$val = $val.Substring(1, $val.Length - 2)
|
||||
}
|
||||
|
||||
$pyvenvConfig[$keyval[0]] = $val
|
||||
Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
|
||||
}
|
||||
}
|
||||
}
|
||||
return $pyvenvConfig
|
||||
}
|
||||
|
||||
|
||||
<# Begin Activate script --------------------------------------------------- #>
|
||||
|
||||
# Determine the containing directory of this script
|
||||
$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
||||
$VenvExecDir = Get-Item -Path $VenvExecPath
|
||||
|
||||
Write-Verbose "Activation script is located in path: '$VenvExecPath'"
|
||||
Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
|
||||
Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
|
||||
|
||||
# Set values required in priority: CmdLine, ConfigFile, Default
|
||||
# First, get the location of the virtual environment, it might not be
|
||||
# VenvExecDir if specified on the command line.
|
||||
if ($VenvDir) {
|
||||
Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
|
||||
}
|
||||
else {
|
||||
Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
|
||||
$VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
|
||||
Write-Verbose "VenvDir=$VenvDir"
|
||||
}
|
||||
|
||||
# Next, read the `pyvenv.cfg` file to determine any required value such
|
||||
# as `prompt`.
|
||||
$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
|
||||
|
||||
# Next, set the prompt from the command line, or the config file, or
|
||||
# just use the name of the virtual environment folder.
|
||||
if ($Prompt) {
|
||||
Write-Verbose "Prompt specified as argument, using '$Prompt'"
|
||||
}
|
||||
else {
|
||||
Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
|
||||
if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
|
||||
Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
|
||||
$Prompt = $pyvenvCfg['prompt'];
|
||||
}
|
||||
else {
|
||||
Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)"
|
||||
Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
|
||||
$Prompt = Split-Path -Path $venvDir -Leaf
|
||||
}
|
||||
}
|
||||
|
||||
Write-Verbose "Prompt = '$Prompt'"
|
||||
Write-Verbose "VenvDir='$VenvDir'"
|
||||
|
||||
# Deactivate any currently active virtual environment, but leave the
|
||||
# deactivate function in place.
|
||||
deactivate -nondestructive
|
||||
|
||||
# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
|
||||
# that there is an activated venv.
|
||||
$env:VIRTUAL_ENV = $VenvDir
|
||||
|
||||
if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
|
||||
|
||||
Write-Verbose "Setting prompt to '$Prompt'"
|
||||
|
||||
# Set the prompt to include the env name
|
||||
# Make sure _OLD_VIRTUAL_PROMPT is global
|
||||
function global:_OLD_VIRTUAL_PROMPT { "" }
|
||||
Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
|
||||
New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
|
||||
|
||||
function global:prompt {
|
||||
Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
|
||||
_OLD_VIRTUAL_PROMPT
|
||||
}
|
||||
$env:VIRTUAL_ENV_PROMPT = $Prompt
|
||||
}
|
||||
|
||||
# Clear PYTHONHOME
|
||||
if (Test-Path -Path Env:PYTHONHOME) {
|
||||
Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
|
||||
Remove-Item -Path Env:PYTHONHOME
|
||||
}
|
||||
|
||||
# Add the venv to the PATH
|
||||
Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
|
||||
$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
|
||||
69
venv/bin/activate
Normal file
69
venv/bin/activate
Normal file
@ -0,0 +1,69 @@
|
||||
# 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 2> /dev/null
|
||||
fi
|
||||
|
||||
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
|
||||
PS1="${_OLD_VIRTUAL_PS1:-}"
|
||||
export PS1
|
||||
unset _OLD_VIRTUAL_PS1
|
||||
fi
|
||||
|
||||
unset VIRTUAL_ENV
|
||||
unset VIRTUAL_ENV_PROMPT
|
||||
if [ ! "${1:-}" = "nondestructive" ] ; then
|
||||
# Self destruct!
|
||||
unset -f deactivate
|
||||
fi
|
||||
}
|
||||
|
||||
# unset irrelevant variables
|
||||
deactivate nondestructive
|
||||
|
||||
VIRTUAL_ENV="/home/runner/Python/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:-}"
|
||||
PS1="(venv) ${PS1:-}"
|
||||
export PS1
|
||||
VIRTUAL_ENV_PROMPT="(venv) "
|
||||
export VIRTUAL_ENV_PROMPT
|
||||
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 2> /dev/null
|
||||
fi
|
||||
26
venv/bin/activate.csh
Normal file
26
venv/bin/activate.csh
Normal file
@ -0,0 +1,26 @@
|
||||
# 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; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate'
|
||||
|
||||
# Unset irrelevant variables.
|
||||
deactivate nondestructive
|
||||
|
||||
setenv VIRTUAL_ENV "/home/runner/Python/venv"
|
||||
|
||||
set _OLD_VIRTUAL_PATH="$PATH"
|
||||
setenv PATH "$VIRTUAL_ENV/bin:$PATH"
|
||||
|
||||
|
||||
set _OLD_VIRTUAL_PROMPT="$prompt"
|
||||
|
||||
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
|
||||
set prompt = "(venv) $prompt"
|
||||
setenv VIRTUAL_ENV_PROMPT "(venv) "
|
||||
endif
|
||||
|
||||
alias pydoc python -m pydoc
|
||||
|
||||
rehash
|
||||
66
venv/bin/activate.fish
Normal file
66
venv/bin/activate.fish
Normal file
@ -0,0 +1,66 @@
|
||||
# This file must be used with "source <venv>/bin/activate.fish" *from fish*
|
||||
# (https://fishshell.com/); you cannot run it directly.
|
||||
|
||||
function deactivate -d "Exit virtual environment 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
|
||||
set -e VIRTUAL_ENV_PROMPT
|
||||
if test "$argv[1]" != "nondestructive"
|
||||
# Self-destruct!
|
||||
functions -e deactivate
|
||||
end
|
||||
end
|
||||
|
||||
# Unset irrelevant variables.
|
||||
deactivate nondestructive
|
||||
|
||||
set -gx VIRTUAL_ENV "/home/runner/Python/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
|
||||
|
||||
# Output the venv prompt; color taken from the blue of the Python logo.
|
||||
printf "%s%s%s" (set_color 4B8BBE) "(venv) " (set_color normal)
|
||||
|
||||
# Restore the return status of the previous command.
|
||||
echo "exit $old_status" | .
|
||||
# Output the original/"old" prompt.
|
||||
_old_fish_prompt
|
||||
end
|
||||
|
||||
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
|
||||
set -gx VIRTUAL_ENV_PROMPT "(venv) "
|
||||
end
|
||||
8
venv/bin/doesitcache
Executable file
8
venv/bin/doesitcache
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from cachecontrol._cmd import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
8
venv/bin/f2py
Executable file
8
venv/bin/f2py
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from numpy.f2py.f2py2e import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
8
venv/bin/f2py3
Executable file
8
venv/bin/f2py3
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from numpy.f2py.f2py2e import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
8
venv/bin/f2py3.10
Executable file
8
venv/bin/f2py3.10
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from numpy.f2py.f2py2e import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
8
venv/bin/flask
Executable file
8
venv/bin/flask
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- 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())
|
||||
8
venv/bin/keyring
Executable file
8
venv/bin/keyring
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from keyring.cli import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
8
venv/bin/normalizer
Executable file
8
venv/bin/normalizer
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from charset_normalizer.cli.normalizer import cli_detect
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(cli_detect())
|
||||
8
venv/bin/pip
Executable file
8
venv/bin/pip
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pip._internal.cli.main import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
8
venv/bin/pip3
Executable file
8
venv/bin/pip3
Executable file
@ -0,0 +1,8 @@
|
||||
#!/home/runner/Python/venv/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pip._internal.cli.main import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
8
venv/bin/pip3.10
Executable file
8
venv/bin/pip3.10
Executable file
@ -0,0 +1,8 @@
|
||||
#!/home/runner/Python/venv/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pip._internal.cli.main import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
8
venv/bin/pkginfo
Executable file
8
venv/bin/pkginfo
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pkginfo.commandline import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
8
venv/bin/poetry
Executable file
8
venv/bin/poetry
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from poetry.console import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
8
venv/bin/pyflakes
Executable file
8
venv/bin/pyflakes
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pyflakes.api import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
8
venv/bin/pylsp
Executable file
8
venv/bin/pylsp
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from pylsp.__main__ import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
1
venv/bin/python
Symbolic link
1
venv/bin/python
Symbolic link
@ -0,0 +1 @@
|
||||
python3
|
||||
3
venv/bin/python3
Executable file
3
venv/bin/python3
Executable file
@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
LD_LIBRARY_PATH="${PYTHON_LD_LIBRARY_PATH}:${LD_LIBRARY_PATH}" exec -a "$0" "${PYTHONBIN}" "$@"
|
||||
1
venv/bin/python3.10
Symbolic link
1
venv/bin/python3.10
Symbolic link
@ -0,0 +1 @@
|
||||
python3
|
||||
8
venv/bin/replit
Executable file
8
venv/bin/replit
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from replit.__main__ import cli
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(cli())
|
||||
8
venv/bin/virtualenv
Executable file
8
venv/bin/virtualenv
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from virtualenv.__main__ import run_with_catch
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(run_with_catch())
|
||||
8
venv/bin/yapf
Executable file
8
venv/bin/yapf
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from yapf import run_main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(run_main())
|
||||
8
venv/bin/yapf-diff
Executable file
8
venv/bin/yapf-diff
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from yapf.third_party.yapf_diff.yapf_diff import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
||||
315
venv/lib/python3.10/site-packages/CHANGES.rst
Normal file
315
venv/lib/python3.10/site-packages/CHANGES.rst
Normal file
@ -0,0 +1,315 @@
|
||||
Changes
|
||||
=======
|
||||
|
||||
Unreleased
|
||||
----------
|
||||
|
||||
Version 1.7.0
|
||||
-------------
|
||||
|
||||
Released 2022-12-17
|
||||
|
||||
- Drop support for Python 3.6. `#196 <https://github.com/dajiaji/pyseto/pull/196>`__
|
||||
- Add CI for Python 11. `#191 <https://github.com/dajiaji/pyseto/pull/191>`__
|
||||
- Fix typo on PASETO usage document. `#183 <https://github.com/dajiaji/pyseto/pull/183>`__
|
||||
|
||||
- Update dependencies.
|
||||
- Bump pycryptodomex to 3.16.0. `#195 <https://github.com/dajiaji/pyseto/pull/195>`__
|
||||
- Bump cryptography to 38.0.4. `#195 <https://github.com/dajiaji/pyseto/pull/195>`__
|
||||
- Update dev dependencies.
|
||||
- Bump pytest to 7.2.0. `#195 <https://github.com/dajiaji/pyseto/pull/195>`__
|
||||
- Bump pre-commit/isort to 5.11.1. `#193 <https://github.com/dajiaji/pyseto/pull/193>`__
|
||||
- Bump pre-commit/black to 22.12.0. `#193 <https://github.com/dajiaji/pyseto/pull/193>`__
|
||||
- Bump pre-commit/pre-commit-hooks to 4.4.0. `#190 <https://github.com/dajiaji/pyseto/pull/190>`__
|
||||
- Bump pre-commit/flake8 to 6.0.0. `#190 <https://github.com/dajiaji/pyseto/pull/190>`__
|
||||
- Bump pre-commit/mirrors-mypy to 0.991. `#187 <https://github.com/dajiaji/pyseto/pull/187>`__
|
||||
- Bump tox to 3.27.1. `#185 <https://github.com/dajiaji/pyseto/pull/185>`__
|
||||
- Bump sphinx-rtd-theme to 1.1.1. `#184 <https://github.com/dajiaji/pyseto/pull/184>`__
|
||||
|
||||
Version 1.6.12
|
||||
--------------
|
||||
|
||||
Released 2022-11-03
|
||||
|
||||
- Update dependencies.
|
||||
- Bump cryptography to 38.0.3. `#180 <https://github.com/dajiaji/pyseto/pull/180>`__
|
||||
- Update dev dependencies.
|
||||
- Bump sphinx-rtd-theme to 1.1.0. `#179 <https://github.com/dajiaji/pyseto/pull/179>`__
|
||||
- Bump tox to 3.27.0. `#178 <https://github.com/dajiaji/pyseto/pull/178>`__
|
||||
- Bump sphinx to 5.3.0. `#177 <https://github.com/dajiaji/pyseto/pull/177>`__
|
||||
- Bump pre-commit/mirrors-mypy to 0.982. `#176 <https://github.com/dajiaji/pyseto/pull/176>`__
|
||||
- Bump pre-commit/black to 22.10.0. `#176 <https://github.com/dajiaji/pyseto/pull/176>`__
|
||||
|
||||
Version 1.6.11
|
||||
--------------
|
||||
|
||||
Released 2022-10-08
|
||||
|
||||
- Update dependencies.
|
||||
- Bump iso8601 to 1.1.0. `#171 <https://github.com/dajiaji/pyseto/pull/171>`__
|
||||
- Bump cryptography to 38.0.1. `#167 <https://github.com/dajiaji/pyseto/pull/167>`__
|
||||
- Update dev dependencies.
|
||||
- Bump pre-commit/mirrors-mypy to 0.981. `#174 <https://github.com/dajiaji/pyseto/pull/174>`__
|
||||
- Bump sphinx to 5.2.3. `#173 <https://github.com/dajiaji/pyseto/pull/173>`__
|
||||
- Bump pytest-cov to 4.0.0. `#172 <https://github.com/dajiaji/pyseto/pull/172>`__
|
||||
- Bump tox to 3.26.0. `#168 <https://github.com/dajiaji/pyseto/pull/168>`__
|
||||
- Bump pre-commit/black to 22.8.0. `#166 <https://github.com/dajiaji/pyseto/pull/166>`__
|
||||
- Bump freezegun to 1.2.2. `#165 <https://github.com/dajiaji/pyseto/pull/165>`__
|
||||
|
||||
Version 1.6.10
|
||||
--------------
|
||||
|
||||
Released 2022-08-10
|
||||
|
||||
- Update dependencies.
|
||||
- Bump cryptography to 37.0.4. `#157 <https://github.com/dajiaji/pyseto/pull/157>`__
|
||||
- Bump pycryptodomex to 3.15.0. `#153 <https://github.com/dajiaji/pyseto/pull/153>`__
|
||||
- Update dev dependencies.
|
||||
- Bump pre-commit/flake8 to 5.0.4. `#162 <https://github.com/dajiaji/pyseto/pull/162>`__
|
||||
- Bump sphinx to 5.1.1. `#160 <https://github.com/dajiaji/pyseto/pull/160>`__
|
||||
- Bump pre-commit/mirrors-mypy to 0.971. `#159 <https://github.com/dajiaji/pyseto/pull/159>`__
|
||||
- Bump pre-commit/black to 22.6.0. `#156 <https://github.com/dajiaji/pyseto/pull/156>`__
|
||||
- Bump tox to 3.25.1. `#155 <https://github.com/dajiaji/pyseto/pull/155>`__
|
||||
- Drop support for Python3.6. `#154 <https://github.com/dajiaji/pyseto/pull/154>`__
|
||||
|
||||
Version 1.6.9
|
||||
-------------
|
||||
|
||||
Released 2022-06-18
|
||||
|
||||
- Update dependencies.
|
||||
- Bump cryptography to 37.0.2. `#146 <https://github.com/dajiaji/pyseto/pull/146>`__
|
||||
- Update dev dependencies.
|
||||
- Bump sphinx to 5.0.2. `#151 <https://github.com/dajiaji/pyseto/pull/151>`__
|
||||
- Bump pre-commit/mirrors-mypy to 0.961. `#150 <https://github.com/dajiaji/pyseto/pull/150>`__
|
||||
- Bump pre-commit/pre-commit-hooks to 4.3.0. `#150 <https://github.com/dajiaji/pyseto/pull/150>`__
|
||||
|
||||
Version 1.6.8
|
||||
-------------
|
||||
|
||||
Released 2022-05-01
|
||||
|
||||
- Compare MACs in constant time. `#143 <https://github.com/dajiaji/pyseto/pull/143>`__
|
||||
- Refine pyproject to add tool.poetry.extras. `#138 <https://github.com/dajiaji/pyseto/pull/138>`__
|
||||
- Update dependencies.
|
||||
- Bump cryptography to 37.0.1. `#142 <https://github.com/dajiaji/pyseto/pull/142>`__
|
||||
- Update dev dependencies.
|
||||
- Bump pre-commit/pre-commit-hooks from 4.1.0 to 4.2.0. `#140 <https://github.com/dajiaji/pyseto/pull/140>`__
|
||||
- Bump tox from 3.24.5 to 3.25.0. `#139 <https://github.com/dajiaji/pyseto/pull/139>`__
|
||||
|
||||
Version 1.6.7
|
||||
-------------
|
||||
|
||||
Released 2022-04-03
|
||||
|
||||
- Update dependencies.
|
||||
- Bump cryptography from 36.0.1 to 36.0.2. `#132 <https://github.com/dajiaji/pyseto/pull/132>`__
|
||||
- Update dependencies.
|
||||
- Bump sphinx from 4.4.0 to 4.5.0. `#135 <https://github.com/dajiaji/pyseto/pull/135>`__
|
||||
- Bump freezegun from 1.1.0 to 1.2.1. `#133 <https://github.com/dajiaji/pyseto/pull/133>`__
|
||||
- Bump pre-commit/mirrors-mypy from 0.931 to 0.940. `#131 <https://github.com/dajiaji/pyseto/pull/131>`__
|
||||
|
||||
Version 1.6.6
|
||||
-------------
|
||||
|
||||
Released 2022-03-01
|
||||
|
||||
- Fix bug on to_peer_paserk_id for v1/2 local key. `#128 <https://github.com/dajiaji/pyseto/pull/128>`__
|
||||
- Add support for to_peer_paserk_id on v1/v3. `#128 <https://github.com/dajiaji/pyseto/pull/128>`__
|
||||
|
||||
Version 1.6.5
|
||||
-------------
|
||||
|
||||
Released 2022-01-20
|
||||
|
||||
- Avoid re-encoding/decoding output from serializer. `#118 <https://github.com/dajiaji/pyseto/pull/118>`__
|
||||
|
||||
Version 1.6.4
|
||||
-------------
|
||||
|
||||
Released 2022-01-14
|
||||
|
||||
- Fix bug on deserializing payload in local paseto. `#114 <https://github.com/dajiaji/pyseto/pull/114>`__
|
||||
|
||||
Version 1.6.3
|
||||
-------------
|
||||
|
||||
Released 2022-01-03
|
||||
|
||||
- Add optional flag to docs dependencies. `#109 <https://github.com/dajiaji/pyseto/pull/109>`__
|
||||
- Remove tool.poetry.extra from pyproject.toml. `#109 <https://github.com/dajiaji/pyseto/pull/109>`__
|
||||
- Add pre-commit hooks for checking json, toml and yaml files. `#108 <https://github.com/dajiaji/pyseto/pull/108>`__
|
||||
|
||||
Version 1.6.2
|
||||
-------------
|
||||
|
||||
Released 2022-01-02
|
||||
|
||||
- Introduce freezegun for test. `#106 <https://github.com/dajiaji/pyseto/pull/106>`__
|
||||
- Add 2022 to copyright and license. `#105 <https://github.com/dajiaji/pyseto/pull/105>`__
|
||||
- Add license information to PyPI. `#104 <https://github.com/dajiaji/pyseto/pull/104>`__
|
||||
|
||||
Version 1.6.1
|
||||
-------------
|
||||
|
||||
Released 2021-12-31
|
||||
|
||||
- Refine github actions. `#99 <https://github.com/dajiaji/pyseto/pull/99>`__
|
||||
- Use pytest-cov instead of coverage. `#98 <https://github.com/dajiaji/pyseto/pull/98>`__
|
||||
- Refine pyproject.toml. `#97 <https://github.com/dajiaji/pyseto/pull/97>`__
|
||||
- Refine tox.ini. `#96 <https://github.com/dajiaji/pyseto/pull/96>`__
|
||||
- Update pytest requirement form ^5.2 to ^6.2. `#91 <https://github.com/dajiaji/pyseto/pull/91>`__
|
||||
|
||||
Version 1.6.0
|
||||
-------------
|
||||
|
||||
Released 2021-12-11
|
||||
|
||||
- Migrate to poetry. `#89 <https://github.com/dajiaji/pyseto/pull/89>`__
|
||||
- Update max line length to 128. `#89 <https://github.com/dajiaji/pyseto/pull/89>`__
|
||||
|
||||
Version 1.5.0
|
||||
-------------
|
||||
|
||||
Released 2021-11-24
|
||||
|
||||
- Add support for aud verification. `#86 <https://github.com/dajiaji/pyseto/pull/86>`__
|
||||
- Add to_peer_paserk_id to KeyInterface. `#85 <https://github.com/dajiaji/pyseto/pull/85>`__
|
||||
|
||||
Version 1.4.0
|
||||
-------------
|
||||
|
||||
Released 2021-11-22
|
||||
|
||||
- Add is_secret to KeyInterface. `#82 <https://github.com/dajiaji/pyseto/pull/82>`__
|
||||
- Disclose KeyInterface class. `#81 <https://github.com/dajiaji/pyseto/pull/81>`__
|
||||
- Disclose Token class. `#80 <https://github.com/dajiaji/pyseto/pull/80>`__
|
||||
|
||||
Version 1.3.0
|
||||
-------------
|
||||
|
||||
Released 2021-11-20
|
||||
|
||||
- Add support for nbf validation. `#76 <https://github.com/dajiaji/pyseto/pull/76>`__
|
||||
- Add support for dict typed footer. `#75 <https://github.com/dajiaji/pyseto/pull/75>`__
|
||||
- Add leeway for exp validation. `#74 <https://github.com/dajiaji/pyseto/pull/74>`__
|
||||
- Add Paseto class. `#72 <https://github.com/dajiaji/pyseto/pull/72>`__
|
||||
- Add support for exp claim. `#71 <https://github.com/dajiaji/pyseto/pull/71>`__
|
||||
|
||||
Version 1.2.0
|
||||
-------------
|
||||
|
||||
Released 2021-11-14
|
||||
|
||||
- Refine README (Add CONTRIBUTING, etc.). `#68 <https://github.com/dajiaji/pyseto/pull/68>`__
|
||||
- Introduce serializer/deserializer for payload. `#67 <https://github.com/dajiaji/pyseto/pull/67>`__
|
||||
- Sync official test vectors. `#64 <https://github.com/dajiaji/pyseto/pull/64>`__
|
||||
|
||||
Version 1.1.0
|
||||
-------------
|
||||
|
||||
Released 2021-10-16
|
||||
|
||||
- Add support for Python 3.10. `#60 <https://github.com/dajiaji/pyseto/pull/60>`__
|
||||
- Add support for k2.seal and k4.seal. `#57 <https://github.com/dajiaji/pyseto/pull/57>`__
|
||||
- Add py.typed. `#56 <https://github.com/dajiaji/pyseto/pull/56>`__
|
||||
|
||||
Version 1.0.0
|
||||
-------------
|
||||
|
||||
Released 2021-09-25
|
||||
|
||||
- [Breaking Change] Remove str support for version. `#53 <https://github.com/dajiaji/pyseto/pull/53>`__
|
||||
- [Breaking Change] Rename type of Key.new to purpose. `#52 <https://github.com/dajiaji/pyseto/pull/52>`__
|
||||
- Add support for PASERK password-based key wrapping. `#47 <https://github.com/dajiaji/pyseto/pull/47>`__
|
||||
- Add support for PASERK key wrapping. `#46 <https://github.com/dajiaji/pyseto/pull/46>`__
|
||||
|
||||
Version 0.7.1
|
||||
-------------
|
||||
|
||||
Released 2021-09-18
|
||||
|
||||
- Make PASERK secret for Ed25519 compliant with PASERK spec. `#44 <https://github.com/dajiaji/pyseto/pull/44>`__
|
||||
|
||||
Version 0.7.0
|
||||
-------------
|
||||
|
||||
Released 2021-09-16
|
||||
|
||||
- Add from_paserk to Key. `#41 <https://github.com/dajiaji/pyseto/pull/41>`__
|
||||
- Add support for paserk lid. `#40 <https://github.com/dajiaji/pyseto/pull/40>`__
|
||||
- Add support for paserk local. `#40 <https://github.com/dajiaji/pyseto/pull/40>`__
|
||||
- Add to_paserk_id to KeyInterface. `#39 <https://github.com/dajiaji/pyseto/pull/39>`__
|
||||
- Add to_paserk to KeyInterface. `#38 <https://github.com/dajiaji/pyseto/pull/38>`__
|
||||
- Fix public key compression for v3.
|
||||
|
||||
Version 0.6.1
|
||||
-------------
|
||||
|
||||
Released 2021-09-12
|
||||
|
||||
- Add usage examples and related tests. `#36 <https://github.com/dajiaji/pyseto/pull/36>`__
|
||||
|
||||
Version 0.6.0
|
||||
-------------
|
||||
|
||||
Released 2021-09-11
|
||||
|
||||
- Add tests for sample code. `#34 <https://github.com/dajiaji/pyseto/pull/34>`__
|
||||
- Allow int type version for Key.new. `#33 <https://github.com/dajiaji/pyseto/pull/33>`__
|
||||
|
||||
Version 0.5.0
|
||||
-------------
|
||||
|
||||
Released 2021-09-11
|
||||
|
||||
- Add API reference about Token. `#30 <https://github.com/dajiaji/pyseto/pull/30>`__
|
||||
- Add support for multiple keys on decode. `#29 <https://github.com/dajiaji/pyseto/pull/29>`__
|
||||
|
||||
Version 0.4.0
|
||||
-------------
|
||||
|
||||
Released 2021-09-10
|
||||
|
||||
- Add tests for public and fix error message. `#26 <https://github.com/dajiaji/pyseto/pull/26>`__
|
||||
- Add tests for local and fix error message. `#25 <https://github.com/dajiaji/pyseto/pull/25>`__
|
||||
- Add tests for Token. `#24 <https://github.com/dajiaji/pyseto/pull/24>`__
|
||||
- Add tests for Key and fix checking argument. `#22 <https://github.com/dajiaji/pyseto/pull/22>`__
|
||||
- Add docstrings for KeyInterface. `#21 <https://github.com/dajiaji/pyseto/pull/21>`__
|
||||
|
||||
Version 0.3.2
|
||||
-------------
|
||||
|
||||
Released 2021-09-07
|
||||
|
||||
- Add API reference. `#17 <https://github.com/dajiaji/pyseto/pull/17>`__
|
||||
|
||||
Version 0.3.1
|
||||
-------------
|
||||
|
||||
Released 2021-09-06
|
||||
|
||||
- Fix readthedocs build error. `#13 <https://github.com/dajiaji/pyseto/pull/13>`__
|
||||
|
||||
Version 0.3.0
|
||||
-------------
|
||||
|
||||
Released 2021-09-06
|
||||
|
||||
- Add docs. `#10 <https://github.com/dajiaji/pyseto/pull/10>`__
|
||||
- Add Key.from_asymmetric_key_params. `#8 <https://github.com/dajiaji/pyseto/pull/8>`__
|
||||
- Make NotSupportedError public. `#8 <https://github.com/dajiaji/pyseto/pull/8>`__
|
||||
|
||||
Version 0.2.0
|
||||
-------------
|
||||
|
||||
Released 2021-09-05
|
||||
|
||||
- Add Token object as a response of decode(). `#6 <https://github.com/dajiaji/pyseto/pull/6>`__
|
||||
|
||||
Version 0.1.0
|
||||
-------------
|
||||
|
||||
Released 2021-09-05
|
||||
|
||||
- First public preview release.
|
||||
@ -0,0 +1 @@
|
||||
pip
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/86/ee/ee/87be2a43f3ff1f56496f451f69243926f025fedbb033666c304c4c161b
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/9b/7d/e2/dc2ad8512710e874c92456698b083c5d18eeb270db33f3c05c5d717777
|
||||
@ -0,0 +1,34 @@
|
||||
../../../bin/doesitcache,sha256=1RWmJD4ag9idCYwglvOznVpra4pzgRqnBTbglKKmubo,220
|
||||
CacheControl-0.12.11.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||
CacheControl-0.12.11.dist-info/LICENSE.txt,sha256=hu7uh74qQ_P_H1ZJb0UfaSQ5JvAl_tuwM2ZsMExMFhs,558
|
||||
CacheControl-0.12.11.dist-info/METADATA,sha256=m33i3CrYUScQ6HTJJFZpiwg8XRjusnDbM_PAXF1xd3c,2218
|
||||
CacheControl-0.12.11.dist-info/RECORD,,
|
||||
CacheControl-0.12.11.dist-info/WHEEL,sha256=WzZ8cwjh8l0jtULNjYq1Hpr-WCqCRgPr--TX4P5I1Wo,110
|
||||
CacheControl-0.12.11.dist-info/entry_points.txt,sha256=HjCekaRCv8kfNqP5WehMR29IWxIA5VrhoOeKrCykCLc,56
|
||||
CacheControl-0.12.11.dist-info/top_level.txt,sha256=vGYWzpbe3h6gkakV4f7iCK2x3KyK3oMkV5pe5v25-d4,13
|
||||
cachecontrol/__init__.py,sha256=hrxlv3q7upsfyMw8k3gQ9vagBax1pYHSGGqYlZ0Zk0M,465
|
||||
cachecontrol/__pycache__/__init__.cpython-310.pyc,,
|
||||
cachecontrol/__pycache__/_cmd.cpython-310.pyc,,
|
||||
cachecontrol/__pycache__/adapter.cpython-310.pyc,,
|
||||
cachecontrol/__pycache__/cache.cpython-310.pyc,,
|
||||
cachecontrol/__pycache__/compat.cpython-310.pyc,,
|
||||
cachecontrol/__pycache__/controller.cpython-310.pyc,,
|
||||
cachecontrol/__pycache__/filewrapper.cpython-310.pyc,,
|
||||
cachecontrol/__pycache__/heuristics.cpython-310.pyc,,
|
||||
cachecontrol/__pycache__/serialize.cpython-310.pyc,,
|
||||
cachecontrol/__pycache__/wrapper.cpython-310.pyc,,
|
||||
cachecontrol/_cmd.py,sha256=HjFJdGgPOLsvS_5e8BvqYrweXJj1gR7dSsqCB1X24uw,1326
|
||||
cachecontrol/adapter.py,sha256=du8CsHKttAWL9-pWmSvyNDVzHrH-qfiSOgo6fcanM-0,5021
|
||||
cachecontrol/cache.py,sha256=Tty45fOjH40fColTGkqKQvQQmbYsMpk-nCyfLcv2vG4,1535
|
||||
cachecontrol/caches/__init__.py,sha256=h-1cUmOz6mhLsjTjOrJ8iPejpGdLCyG4lzTftfGZvLg,242
|
||||
cachecontrol/caches/__pycache__/__init__.cpython-310.pyc,,
|
||||
cachecontrol/caches/__pycache__/file_cache.cpython-310.pyc,,
|
||||
cachecontrol/caches/__pycache__/redis_cache.cpython-310.pyc,,
|
||||
cachecontrol/caches/file_cache.py,sha256=GpexcE29LoY4MaZwPUTcUBZaDdcsjqyLxZFznk8Hbr4,5271
|
||||
cachecontrol/caches/redis_cache.py,sha256=bGKAU0IOcJUFmU_blBI3w6zKj1L4IyfDPmLNyzjp_y4,1021
|
||||
cachecontrol/compat.py,sha256=JOVKyIibp8nNq3jAbv7nXBsNOtXHVEKPh5u8r2qLGVo,730
|
||||
cachecontrol/controller.py,sha256=6jyT4j4LFsIvfDeSFD6xKK15RCOInwE2Nr8Ug7ICtww,16404
|
||||
cachecontrol/filewrapper.py,sha256=X4BAQOO26GNOR7nH_fhTzAfeuct2rBQcx_15MyFBpcs,3946
|
||||
cachecontrol/heuristics.py,sha256=8kAyuZLSCyEIgQr6vbUwfhpqg9ows4mM0IV6DWazevI,4154
|
||||
cachecontrol/serialize.py,sha256=qbMVbnUSDuQRlJWTn6-CKrXYShaUn9dSigtvtAaI3xA,7076
|
||||
cachecontrol/wrapper.py,sha256=X3-KMZ20Ho3VtqyVaXclpeQpFzokR5NE8tZSfvKVaB8,774
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/5b/36/7c/7308e1f25d23b542cd8d8ab51e9afe582a824603ebfbe4d7e0fe48d56a
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/1e/30/9e/91a442bfc91f36a3f959e84c476f485b1200e55ae1a0e78aac2ca408b7
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/bc/66/16/ce96dede1ea091a915e1fee208adb1dcac8ade8324579a5ee6fdb9f9de
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/AES.py
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/AES.py
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/d2/9b/14/3947f93a52db0117af3cf12d1c23d2eafa047fa8360eccc739112132d5
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/AES.pyi
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/AES.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/dd/a8/44/9f8df0985bf7ef17669e589bce358e9910204927a2153a05308a0b5549
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ARC2.py
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ARC2.py
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/37/03/b8/d8a581a6e4d74b94e1c7482c0d19b1cabbdf8ae771ecf29e775291d022
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ARC2.pyi
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ARC2.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/ce/03/1f/518df9c3502e122d1aa6416e1e8fcd40e7f3b02c6e67d80dd6cde80218
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ARC4.py
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ARC4.py
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/4c/3c/6b/986189bf0b6afd76517637b956749988a2daa1cb3ffaf4b22199ce7d07
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ARC4.pyi
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ARC4.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/b0/cc/3b/df26477a89e61b1f41862c80effff83d0268714d3848c45c0e39f22766
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/Blowfish.py
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/Blowfish.py
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/2b/98/45/ea76f6afc16c1e180b5f68ab77250caa0e0f0b0ac082eebc34d854d5a8
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/Blowfish.pyi
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/Blowfish.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/90/3a/28/6b3331635f7bdd232d3ee84d27d7faf0f4b870d5b29f261aec2a160b8f
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/CAST.py
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/CAST.py
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/dd/70/e3/b5506c89ada43ef76e701d7dfc511cdf333b8522bc24a2a62be6fc72f5
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/CAST.pyi
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/CAST.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/5e/05/64/f703affd5efb2db4269b6e0ed91f8f0ecb3c2621dfc35d646ab6af2822
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ChaCha20.py
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ChaCha20.py
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/be/ce/d4/8246721eb8ad2b49571aa50c0e9ab1164c46808cdc4ea78c6008f56e93
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ChaCha20.pyi
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/ChaCha20.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/fe/5d/71/86d3b20666041cfec5b6693c11066929e817f69dcde6d7240bf3cfbded
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/5b/4b/4e/9819283737f0b7080f1bd4f0d1d526dec67c2158677a14db01cda346de
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/87/55/39/8b1383cccf4dc0ba57f6868825d790d2e6d8783798f66eaeaf4e5d2827
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/DES.py
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/DES.py
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/79/b8/07/3aa3468c2625228161dd6e4a5d8d7b6909ef7248e1402f533c42aa3ee6
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/DES.pyi
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/DES.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/b6/13/59/013c59d10faf3a1fd5ed0559bba27f112bebf66700ebb5a5415fe73f50
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/DES3.py
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/DES3.py
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/aa/62/1a/80e2e13061b6db5b02ec1007f717b9967c64da2ca295b798a02de2b787
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/DES3.pyi
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/DES3.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/6a/bb/f8/521bfb9528002f7e81fd5c790cbfacff5f0a73dfd37a33717ed329e07e
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/f8/5a/cf/d59b021a68be062cc97534b116ee90de7a7e593d9d07e3875b697fa71a
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/5d/16/79/ff4bfcc362d4603d381b3dc491ecbd3f16016499d497ed2b56fdaafe06
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/1f/74/41/af7bfc7c4dd37afeb729f35759594d147bd9c27070b408a749728b61f6
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/7e/b0/a3/ce6489ae53d5a7e6743ff11e7fdc9849f04d6577de8f1bfed35ec6e89a
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/Salsa20.py
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/Salsa20.py
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/4a/ec/da/62105cfd0eefa0e0c3990dab0b320b9dd3e9985d67eaa8ad0cc9a4ee7a
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/Salsa20.pyi
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/Salsa20.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/e2/f8/ea/fc737c34aed4f5575a687220b35efe7f25bc4913c365a1f2de329592da
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/39/33/51/19b691b8345f6d0f0432953a8c845bd227475e87a715a7b1576c327838
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/7e/2e/93/11e3746d77339c59322f3b1aa0bc4d9aef623d3f939a9dc22ef26c1340
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/e8/98/40/5ec4956c931895cb9da4dc123440c1f57e4d8e17d118fcd9bdc39cfc0b
|
||||
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/fc/dd/5a/1758fcf5b853906a32a714bd1bc42b4e0f16d458096fe4de16451958a2
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/__init__.py
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/__init__.py
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/09/d6/ae/dc0fd9b26a8e14cf322b84360bf845795db18ddf7f7d4f35dbf7dead73
|
||||
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/__init__.pyi
Symbolic link
1
venv/lib/python3.10/site-packages/Cryptodome/Cipher/__init__.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
/home/runner/.cache/pip/pool/e3/b0/c4/4298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
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.
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