minko186 commited on
Commit
e3b9187
2 Parent(s): 0098439 771c8c5

Merge remote-tracking branch 'origin/main' into minko

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitignore +3 -11
  2. analysis.py +1 -1
  3. app.py +48 -12
  4. copy_check/bin/Activate.ps1 +0 -241
  5. copy_check/bin/activate +0 -66
  6. copy_check/bin/activate.csh +0 -25
  7. copy_check/bin/activate.fish +0 -64
  8. copy_check/bin/easy_install +0 -8
  9. copy_check/bin/easy_install-3.9 +0 -8
  10. copy_check/bin/pip +0 -8
  11. copy_check/bin/pip3 +0 -8
  12. copy_check/bin/pip3.9 +0 -8
  13. copy_check/bin/python +0 -1
  14. copy_check/bin/python3 +0 -1
  15. copy_check/bin/python3.9 +0 -1
  16. copy_check/lib/python3.9/site-packages/__pycache__/easy_install.cpython-39.pyc +0 -0
  17. copy_check/lib/python3.9/site-packages/easy_install.py +0 -5
  18. copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/INSTALLER +0 -1
  19. copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/LICENSE.txt +0 -20
  20. copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/METADATA +0 -94
  21. copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/RECORD +0 -284
  22. copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/REQUESTED +0 -0
  23. copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/WHEEL +0 -6
  24. copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/entry_points.txt +0 -5
  25. copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/top_level.txt +0 -1
  26. copy_check/lib/python3.9/site-packages/pip/__init__.py +0 -18
  27. copy_check/lib/python3.9/site-packages/pip/__main__.py +0 -26
  28. copy_check/lib/python3.9/site-packages/pip/__pycache__/__init__.cpython-39.pyc +0 -0
  29. copy_check/lib/python3.9/site-packages/pip/__pycache__/__main__.cpython-39.pyc +0 -0
  30. copy_check/lib/python3.9/site-packages/pip/_internal/__init__.py +0 -17
  31. copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/__init__.cpython-39.pyc +0 -0
  32. copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/build_env.cpython-39.pyc +0 -0
  33. copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/cache.cpython-39.pyc +0 -0
  34. copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/configuration.cpython-39.pyc +0 -0
  35. copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/exceptions.cpython-39.pyc +0 -0
  36. copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/locations.cpython-39.pyc +0 -0
  37. copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/main.cpython-39.pyc +0 -0
  38. copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/pyproject.cpython-39.pyc +0 -0
  39. copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-39.pyc +0 -0
  40. copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-39.pyc +0 -0
  41. copy_check/lib/python3.9/site-packages/pip/_internal/build_env.py +0 -242
  42. copy_check/lib/python3.9/site-packages/pip/_internal/cache.py +0 -346
  43. copy_check/lib/python3.9/site-packages/pip/_internal/cli/__init__.py +0 -4
  44. copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-39.pyc +0 -0
  45. copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc +0 -0
  46. copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-39.pyc +0 -0
  47. copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc +0 -0
  48. copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-39.pyc +0 -0
  49. copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main.cpython-39.pyc +0 -0
  50. copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc +0 -0
.gitignore CHANGED
@@ -1,11 +1,3 @@
1
- __pycache__/analysis.cpython-311.pyc
2
- __pycache__/app.cpython-311.pyc
3
- __pycache__/explainability.cpython-311.pyc
4
- __pycache__/plagiarism.cpython-311.pyc
5
- __pycache__/predictors.cpython-311.pyc
6
- __pycache__/utils.cpython-311.pyc
7
- __pycache__/utils.cpython-39.pyc
8
- __pycache__/utils.cpython-310.pyc
9
- __pycache__/writing_analysis.cpython-39.pyc
10
- __pycache__/writing_analysis.cpython-310.pyc
11
- __pycache__
 
1
+ __pycache__/
2
+ copy_ch/
3
+ copy_check/
 
 
 
 
 
 
 
 
analysis.py CHANGED
@@ -33,7 +33,7 @@ readability_model_id = params["READABILITY_MODEL_ID"]
33
  gpt2_model = GPT2LMHeadModel.from_pretrained(readability_model_id).to(device)
34
  gpt2_tokenizer = GPT2TokenizerFast.from_pretrained(readability_model_id)
35
 
36
- command = ["python", "-m", "spacy", "download", "en_core_web_sm"]
37
  subprocess.run(command)
38
  nlp = spacy.load("en_core_web_sm")
39
 
 
33
  gpt2_model = GPT2LMHeadModel.from_pretrained(readability_model_id).to(device)
34
  gpt2_tokenizer = GPT2TokenizerFast.from_pretrained(readability_model_id)
35
 
36
+ command = ["python3", "-m", "spacy", "download", "en_core_web_sm"]
37
  subprocess.run(command)
38
  nlp = spacy.load("en_core_web_sm")
39
 
app.py CHANGED
@@ -5,8 +5,11 @@ from predictors import predict_bc_scores, predict_mc_scores, predict_1on1_scores
5
  from analysis import depth_analysis
6
  from predictors import predict_quillbot
7
  from plagiarism import plagiarism_check, build_date
 
8
  from utils import extract_text_from_pdf, len_validator
9
  import yaml
 
 
10
 
11
  np.set_printoptions(suppress=True)
12
 
@@ -16,6 +19,10 @@ with open("config.yaml", "r") as file:
16
  model_list = params["MC_OUTPUT_LABELS"]
17
 
18
 
 
 
 
 
19
  def ai_generated_test(option, input, models):
20
  if option == "Human vs AI":
21
  return predict_bc_scores(input), None
@@ -105,6 +112,13 @@ with gr.Blocks() as demo:
105
  char_count = gr.Textbox(label="Minumum Character Limit Check")
106
  input_text.change(fn=len_validator, inputs=input_text, outputs=char_count)
107
 
 
 
 
 
 
 
 
108
  with gr.Row():
109
  with gr.Column():
110
  ai_option = gr.Radio(
@@ -123,12 +137,17 @@ with gr.Blocks() as demo:
123
  with gr.Row():
124
  with gr.Column():
125
  only_ai_btn = gr.Button("AI Check")
126
-
127
  with gr.Column():
128
  only_plagiarism_btn = gr.Button("Source Check")
129
 
 
 
 
130
  with gr.Row():
131
- quillbot_check = gr.Button("Humanized Text Check")
 
 
 
132
 
133
  with gr.Row():
134
  depth_analysis_btn = gr.Button("Detailed Writing Analysis")
@@ -142,22 +161,25 @@ with gr.Blocks() as demo:
142
  """
143
  )
144
 
145
- models = gr.Dropdown(
146
- model_list,
147
- value=model_list,
148
- multiselect=True,
149
- label="Models to test against",
150
- )
151
-
152
  with gr.Row():
153
  with gr.Column():
154
  bcLabel = gr.Label(label="Source")
155
  with gr.Column():
156
  mcLabel = gr.Label(label="Creator")
 
 
 
 
157
  # with gr.Column():
158
  # mc1on1Label = gr.Label(label="Creator(1 on 1 Approach)")
 
159
  with gr.Row():
160
- QLabel = gr.Label(label="Humanized")
 
 
 
 
 
161
  with gr.Group():
162
  with gr.Row():
163
  month_from = gr.Dropdown(
@@ -271,9 +293,23 @@ with gr.Blocks() as demo:
271
  api_name="depth_analysis",
272
  )
273
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
  date_from = ""
275
  date_to = ""
276
 
277
 
278
- if __name__ == "__main__":
279
- demo.launch(share=True, auth=("polygraf-admin", "test@aisd"))
 
5
  from analysis import depth_analysis
6
  from predictors import predict_quillbot
7
  from plagiarism import plagiarism_check, build_date
8
+ from highlighter import analyze_and_highlight
9
  from utils import extract_text_from_pdf, len_validator
10
  import yaml
11
+ from functools import partial
12
+
13
 
14
  np.set_printoptions(suppress=True)
15
 
 
19
  model_list = params["MC_OUTPUT_LABELS"]
20
 
21
 
22
+ analyze_and_highlight_bc = partial(analyze_and_highlight, model_type="bc")
23
+ analyze_and_highlight_quillbot = partial(analyze_and_highlight, model_type="quillbot")
24
+
25
+
26
  def ai_generated_test(option, input, models):
27
  if option == "Human vs AI":
28
  return predict_bc_scores(input), None
 
112
  char_count = gr.Textbox(label="Minumum Character Limit Check")
113
  input_text.change(fn=len_validator, inputs=input_text, outputs=char_count)
114
 
115
+ with gr.Row():
116
+ models = gr.Dropdown(
117
+ model_list,
118
+ value=model_list,
119
+ multiselect=True,
120
+ label="Models to test against",
121
+ )
122
  with gr.Row():
123
  with gr.Column():
124
  ai_option = gr.Radio(
 
137
  with gr.Row():
138
  with gr.Column():
139
  only_ai_btn = gr.Button("AI Check")
 
140
  with gr.Column():
141
  only_plagiarism_btn = gr.Button("Source Check")
142
 
143
+ with gr.Column():
144
+ quillbot_check = gr.Button("Humanized Text Check")
145
+
146
  with gr.Row():
147
+ with gr.Column():
148
+ bc_highlighter_button = gr.Button("Human vs. AI Highlighter")
149
+ with gr.Column():
150
+ quillbot_highlighter_button = gr.Button("Humanized Highlighter")
151
 
152
  with gr.Row():
153
  depth_analysis_btn = gr.Button("Detailed Writing Analysis")
 
161
  """
162
  )
163
 
 
 
 
 
 
 
 
164
  with gr.Row():
165
  with gr.Column():
166
  bcLabel = gr.Label(label="Source")
167
  with gr.Column():
168
  mcLabel = gr.Label(label="Creator")
169
+ with gr.Row():
170
+ with gr.Column():
171
+ bc_highlighter_output = gr.HTML(label="Human vs. AI Highlighter")
172
+
173
  # with gr.Column():
174
  # mc1on1Label = gr.Label(label="Creator(1 on 1 Approach)")
175
+
176
  with gr.Row():
177
+ with gr.Column():
178
+ QLabel = gr.Label(label="Humanized")
179
+
180
+ with gr.Row():
181
+ quillbot_highlighter_output = gr.HTML(label="Humanized Highlighter")
182
+
183
  with gr.Group():
184
  with gr.Row():
185
  month_from = gr.Dropdown(
 
293
  api_name="depth_analysis",
294
  )
295
 
296
+ quillbot_highlighter_button.click(
297
+ fn=analyze_and_highlight_quillbot,
298
+ inputs=[input_text],
299
+ outputs=[quillbot_highlighter_output],
300
+ api_name="humanized_highlighter",
301
+ )
302
+
303
+ bc_highlighter_button.click(
304
+ fn=analyze_and_highlight_bc,
305
+ inputs=[input_text],
306
+ outputs=[bc_highlighter_output],
307
+ api_name="bc_highlighter",
308
+ )
309
+
310
  date_from = ""
311
  date_to = ""
312
 
313
 
314
+ if __name__ == "__main__":
315
+ demo.launch(share=True, server_name="0.0.0.0", auth=("polygraf-admin", "test@aisd"))
copy_check/bin/Activate.ps1 DELETED
@@ -1,241 +0,0 @@
1
- <#
2
- .Synopsis
3
- Activate a Python virtual environment for the current PowerShell session.
4
-
5
- .Description
6
- Pushes the python executable for a virtual environment to the front of the
7
- $Env:PATH environment variable and sets the prompt to signify that you are
8
- in a Python virtual environment. Makes use of the command line switches as
9
- well as the `pyvenv.cfg` file values present in the virtual environment.
10
-
11
- .Parameter VenvDir
12
- Path to the directory that contains the virtual environment to activate. The
13
- default value for this is the parent of the directory that the Activate.ps1
14
- script is located within.
15
-
16
- .Parameter Prompt
17
- The prompt prefix to display when this virtual environment is activated. By
18
- default, this prompt is the name of the virtual environment folder (VenvDir)
19
- surrounded by parentheses and followed by a single space (ie. '(.venv) ').
20
-
21
- .Example
22
- Activate.ps1
23
- Activates the Python virtual environment that contains the Activate.ps1 script.
24
-
25
- .Example
26
- Activate.ps1 -Verbose
27
- Activates the Python virtual environment that contains the Activate.ps1 script,
28
- and shows extra information about the activation as it executes.
29
-
30
- .Example
31
- Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
32
- Activates the Python virtual environment located in the specified location.
33
-
34
- .Example
35
- Activate.ps1 -Prompt "MyPython"
36
- Activates the Python virtual environment that contains the Activate.ps1 script,
37
- and prefixes the current prompt with the specified string (surrounded in
38
- parentheses) while the virtual environment is active.
39
-
40
- .Notes
41
- On Windows, it may be required to enable this Activate.ps1 script by setting the
42
- execution policy for the user. You can do this by issuing the following PowerShell
43
- command:
44
-
45
- PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
46
-
47
- For more information on Execution Policies:
48
- https://go.microsoft.com/fwlink/?LinkID=135170
49
-
50
- #>
51
- Param(
52
- [Parameter(Mandatory = $false)]
53
- [String]
54
- $VenvDir,
55
- [Parameter(Mandatory = $false)]
56
- [String]
57
- $Prompt
58
- )
59
-
60
- <# Function declarations --------------------------------------------------- #>
61
-
62
- <#
63
- .Synopsis
64
- Remove all shell session elements added by the Activate script, including the
65
- addition of the virtual environment's Python executable from the beginning of
66
- the PATH variable.
67
-
68
- .Parameter NonDestructive
69
- If present, do not remove this function from the global namespace for the
70
- session.
71
-
72
- #>
73
- function global:deactivate ([switch]$NonDestructive) {
74
- # Revert to original values
75
-
76
- # The prior prompt:
77
- if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
78
- Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
79
- Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
80
- }
81
-
82
- # The prior PYTHONHOME:
83
- if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
84
- Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
85
- Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
86
- }
87
-
88
- # The prior PATH:
89
- if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
90
- Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
91
- Remove-Item -Path Env:_OLD_VIRTUAL_PATH
92
- }
93
-
94
- # Just remove the VIRTUAL_ENV altogether:
95
- if (Test-Path -Path Env:VIRTUAL_ENV) {
96
- Remove-Item -Path env:VIRTUAL_ENV
97
- }
98
-
99
- # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
100
- if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
101
- Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
102
- }
103
-
104
- # Leave deactivate function in the global namespace if requested:
105
- if (-not $NonDestructive) {
106
- Remove-Item -Path function:deactivate
107
- }
108
- }
109
-
110
- <#
111
- .Description
112
- Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
113
- given folder, and returns them in a map.
114
-
115
- For each line in the pyvenv.cfg file, if that line can be parsed into exactly
116
- two strings separated by `=` (with any amount of whitespace surrounding the =)
117
- then it is considered a `key = value` line. The left hand string is the key,
118
- the right hand is the value.
119
-
120
- If the value starts with a `'` or a `"` then the first and last character is
121
- stripped from the value before being captured.
122
-
123
- .Parameter ConfigDir
124
- Path to the directory that contains the `pyvenv.cfg` file.
125
- #>
126
- function Get-PyVenvConfig(
127
- [String]
128
- $ConfigDir
129
- ) {
130
- Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
131
-
132
- # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
133
- $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
134
-
135
- # An empty map will be returned if no config file is found.
136
- $pyvenvConfig = @{ }
137
-
138
- if ($pyvenvConfigPath) {
139
-
140
- Write-Verbose "File exists, parse `key = value` lines"
141
- $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
142
-
143
- $pyvenvConfigContent | ForEach-Object {
144
- $keyval = $PSItem -split "\s*=\s*", 2
145
- if ($keyval[0] -and $keyval[1]) {
146
- $val = $keyval[1]
147
-
148
- # Remove extraneous quotations around a string value.
149
- if ("'""".Contains($val.Substring(0, 1))) {
150
- $val = $val.Substring(1, $val.Length - 2)
151
- }
152
-
153
- $pyvenvConfig[$keyval[0]] = $val
154
- Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
155
- }
156
- }
157
- }
158
- return $pyvenvConfig
159
- }
160
-
161
-
162
- <# Begin Activate script --------------------------------------------------- #>
163
-
164
- # Determine the containing directory of this script
165
- $VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
166
- $VenvExecDir = Get-Item -Path $VenvExecPath
167
-
168
- Write-Verbose "Activation script is located in path: '$VenvExecPath'"
169
- Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
170
- Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
171
-
172
- # Set values required in priority: CmdLine, ConfigFile, Default
173
- # First, get the location of the virtual environment, it might not be
174
- # VenvExecDir if specified on the command line.
175
- if ($VenvDir) {
176
- Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
177
- }
178
- else {
179
- Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
180
- $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
181
- Write-Verbose "VenvDir=$VenvDir"
182
- }
183
-
184
- # Next, read the `pyvenv.cfg` file to determine any required value such
185
- # as `prompt`.
186
- $pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
187
-
188
- # Next, set the prompt from the command line, or the config file, or
189
- # just use the name of the virtual environment folder.
190
- if ($Prompt) {
191
- Write-Verbose "Prompt specified as argument, using '$Prompt'"
192
- }
193
- else {
194
- Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
195
- if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
196
- Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
197
- $Prompt = $pyvenvCfg['prompt'];
198
- }
199
- else {
200
- Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virutal environment)"
201
- Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
202
- $Prompt = Split-Path -Path $venvDir -Leaf
203
- }
204
- }
205
-
206
- Write-Verbose "Prompt = '$Prompt'"
207
- Write-Verbose "VenvDir='$VenvDir'"
208
-
209
- # Deactivate any currently active virtual environment, but leave the
210
- # deactivate function in place.
211
- deactivate -nondestructive
212
-
213
- # Now set the environment variable VIRTUAL_ENV, used by many tools to determine
214
- # that there is an activated venv.
215
- $env:VIRTUAL_ENV = $VenvDir
216
-
217
- if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
218
-
219
- Write-Verbose "Setting prompt to '$Prompt'"
220
-
221
- # Set the prompt to include the env name
222
- # Make sure _OLD_VIRTUAL_PROMPT is global
223
- function global:_OLD_VIRTUAL_PROMPT { "" }
224
- Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
225
- New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
226
-
227
- function global:prompt {
228
- Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
229
- _OLD_VIRTUAL_PROMPT
230
- }
231
- }
232
-
233
- # Clear PYTHONHOME
234
- if (Test-Path -Path Env:PYTHONHOME) {
235
- Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
236
- Remove-Item -Path Env:PYTHONHOME
237
- }
238
-
239
- # Add the venv to the PATH
240
- Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
241
- $Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/bin/activate DELETED
@@ -1,66 +0,0 @@
1
- # This file must be used with "source bin/activate" *from bash*
2
- # you cannot run it directly
3
-
4
- deactivate () {
5
- # reset old environment variables
6
- if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
7
- PATH="${_OLD_VIRTUAL_PATH:-}"
8
- export PATH
9
- unset _OLD_VIRTUAL_PATH
10
- fi
11
- if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
12
- PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
13
- export PYTHONHOME
14
- unset _OLD_VIRTUAL_PYTHONHOME
15
- fi
16
-
17
- # This should detect bash and zsh, which have a hash command that must
18
- # be called to get it to forget past commands. Without forgetting
19
- # past commands the $PATH changes we made may not be respected
20
- if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
21
- hash -r 2> /dev/null
22
- fi
23
-
24
- if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
25
- PS1="${_OLD_VIRTUAL_PS1:-}"
26
- export PS1
27
- unset _OLD_VIRTUAL_PS1
28
- fi
29
-
30
- unset VIRTUAL_ENV
31
- if [ ! "${1:-}" = "nondestructive" ] ; then
32
- # Self destruct!
33
- unset -f deactivate
34
- fi
35
- }
36
-
37
- # unset irrelevant variables
38
- deactivate nondestructive
39
-
40
- VIRTUAL_ENV="/home/aliasgarov/copyright_checker/copy_check"
41
- export VIRTUAL_ENV
42
-
43
- _OLD_VIRTUAL_PATH="$PATH"
44
- PATH="$VIRTUAL_ENV/bin:$PATH"
45
- export PATH
46
-
47
- # unset PYTHONHOME if set
48
- # this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
49
- # could use `if (set -u; : $PYTHONHOME) ;` in bash
50
- if [ -n "${PYTHONHOME:-}" ] ; then
51
- _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
52
- unset PYTHONHOME
53
- fi
54
-
55
- if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
56
- _OLD_VIRTUAL_PS1="${PS1:-}"
57
- PS1="(copy_check) ${PS1:-}"
58
- export PS1
59
- fi
60
-
61
- # This should detect bash and zsh, which have a hash command that must
62
- # be called to get it to forget past commands. Without forgetting
63
- # past commands the $PATH changes we made may not be respected
64
- if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
65
- hash -r 2> /dev/null
66
- fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/bin/activate.csh DELETED
@@ -1,25 +0,0 @@
1
- # This file must be used with "source bin/activate.csh" *from csh*.
2
- # You cannot run it directly.
3
- # Created by Davide Di Blasi <[email protected]>.
4
- # Ported to Python 3.3 venv by Andrew Svetlov <[email protected]>
5
-
6
- 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'
7
-
8
- # Unset irrelevant variables.
9
- deactivate nondestructive
10
-
11
- setenv VIRTUAL_ENV "/home/aliasgarov/copyright_checker/copy_check"
12
-
13
- set _OLD_VIRTUAL_PATH="$PATH"
14
- setenv PATH "$VIRTUAL_ENV/bin:$PATH"
15
-
16
-
17
- set _OLD_VIRTUAL_PROMPT="$prompt"
18
-
19
- if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
20
- set prompt = "(copy_check) $prompt"
21
- endif
22
-
23
- alias pydoc python -m pydoc
24
-
25
- rehash
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/bin/activate.fish DELETED
@@ -1,64 +0,0 @@
1
- # This file must be used with "source <venv>/bin/activate.fish" *from fish*
2
- # (https://fishshell.com/); you cannot run it directly.
3
-
4
- function deactivate -d "Exit virtual environment and return to normal shell environment"
5
- # reset old environment variables
6
- if test -n "$_OLD_VIRTUAL_PATH"
7
- set -gx PATH $_OLD_VIRTUAL_PATH
8
- set -e _OLD_VIRTUAL_PATH
9
- end
10
- if test -n "$_OLD_VIRTUAL_PYTHONHOME"
11
- set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
12
- set -e _OLD_VIRTUAL_PYTHONHOME
13
- end
14
-
15
- if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
16
- functions -e fish_prompt
17
- set -e _OLD_FISH_PROMPT_OVERRIDE
18
- functions -c _old_fish_prompt fish_prompt
19
- functions -e _old_fish_prompt
20
- end
21
-
22
- set -e VIRTUAL_ENV
23
- if test "$argv[1]" != "nondestructive"
24
- # Self-destruct!
25
- functions -e deactivate
26
- end
27
- end
28
-
29
- # Unset irrelevant variables.
30
- deactivate nondestructive
31
-
32
- set -gx VIRTUAL_ENV "/home/aliasgarov/copyright_checker/copy_check"
33
-
34
- set -gx _OLD_VIRTUAL_PATH $PATH
35
- set -gx PATH "$VIRTUAL_ENV/bin" $PATH
36
-
37
- # Unset PYTHONHOME if set.
38
- if set -q PYTHONHOME
39
- set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
40
- set -e PYTHONHOME
41
- end
42
-
43
- if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
44
- # fish uses a function instead of an env var to generate the prompt.
45
-
46
- # Save the current fish_prompt function as the function _old_fish_prompt.
47
- functions -c fish_prompt _old_fish_prompt
48
-
49
- # With the original prompt function renamed, we can override with our own.
50
- function fish_prompt
51
- # Save the return status of the last command.
52
- set -l old_status $status
53
-
54
- # Output the venv prompt; color taken from the blue of the Python logo.
55
- printf "%s%s%s" (set_color 4B8BBE) "(copy_check) " (set_color normal)
56
-
57
- # Restore the return status of the previous command.
58
- echo "exit $old_status" | .
59
- # Output the original/"old" prompt.
60
- _old_fish_prompt
61
- end
62
-
63
- set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
64
- end
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/bin/easy_install DELETED
@@ -1,8 +0,0 @@
1
- #!/home/aliasgarov/copyright_checker/copy_check/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from setuptools.command.easy_install import main
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(main())
 
 
 
 
 
 
 
 
 
copy_check/bin/easy_install-3.9 DELETED
@@ -1,8 +0,0 @@
1
- #!/home/aliasgarov/copyright_checker/copy_check/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from setuptools.command.easy_install import main
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(main())
 
 
 
 
 
 
 
 
 
copy_check/bin/pip DELETED
@@ -1,8 +0,0 @@
1
- #!/home/aliasgarov/copyright_checker/copy_check/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from pip._internal.cli.main import main
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(main())
 
 
 
 
 
 
 
 
 
copy_check/bin/pip3 DELETED
@@ -1,8 +0,0 @@
1
- #!/home/aliasgarov/copyright_checker/copy_check/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from pip._internal.cli.main import main
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(main())
 
 
 
 
 
 
 
 
 
copy_check/bin/pip3.9 DELETED
@@ -1,8 +0,0 @@
1
- #!/home/aliasgarov/copyright_checker/copy_check/bin/python3
2
- # -*- coding: utf-8 -*-
3
- import re
4
- import sys
5
- from pip._internal.cli.main import main
6
- if __name__ == '__main__':
7
- sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
8
- sys.exit(main())
 
 
 
 
 
 
 
 
 
copy_check/bin/python DELETED
@@ -1 +0,0 @@
1
- python3
 
 
copy_check/bin/python3 DELETED
@@ -1 +0,0 @@
1
- /usr/bin/python3
 
 
copy_check/bin/python3.9 DELETED
@@ -1 +0,0 @@
1
- python3
 
 
copy_check/lib/python3.9/site-packages/__pycache__/easy_install.cpython-39.pyc DELETED
Binary file (322 Bytes)
 
copy_check/lib/python3.9/site-packages/easy_install.py DELETED
@@ -1,5 +0,0 @@
1
- """Run the EasyInstall command"""
2
-
3
- if __name__ == '__main__':
4
- from setuptools.command.easy_install import main
5
- main()
 
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/INSTALLER DELETED
@@ -1 +0,0 @@
1
- pip
 
 
copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/LICENSE.txt DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2008-2020 The pip developers (see AUTHORS.txt file)
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/METADATA DELETED
@@ -1,94 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: pip
3
- Version: 20.3.4
4
- Summary: The PyPA recommended tool for installing Python packages.
5
- Home-page: https://pip.pypa.io/
6
- Author: The pip developers
7
- Author-email: [email protected]
8
- License: MIT
9
- Project-URL: Documentation, https://pip.pypa.io
10
- Project-URL: Source, https://github.com/pypa/pip
11
- Project-URL: Changelog, https://pip.pypa.io/en/stable/news/
12
- Keywords: distutils easy_install egg setuptools wheel virtualenv
13
- Platform: UNKNOWN
14
- Classifier: Development Status :: 5 - Production/Stable
15
- Classifier: Intended Audience :: Developers
16
- Classifier: License :: OSI Approved :: MIT License
17
- Classifier: Topic :: Software Development :: Build Tools
18
- Classifier: Programming Language :: Python
19
- Classifier: Programming Language :: Python :: 2
20
- Classifier: Programming Language :: Python :: 2.7
21
- Classifier: Programming Language :: Python :: 3
22
- Classifier: Programming Language :: Python :: 3.5
23
- Classifier: Programming Language :: Python :: 3.6
24
- Classifier: Programming Language :: Python :: 3.7
25
- Classifier: Programming Language :: Python :: 3.8
26
- Classifier: Programming Language :: Python :: 3.9
27
- Classifier: Programming Language :: Python :: Implementation :: CPython
28
- Classifier: Programming Language :: Python :: Implementation :: PyPy
29
- Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*
30
-
31
- pip - The Python Package Installer
32
- ==================================
33
-
34
- .. image:: https://img.shields.io/pypi/v/pip.svg
35
- :target: https://pypi.org/project/pip/
36
-
37
- .. image:: https://readthedocs.org/projects/pip/badge/?version=latest
38
- :target: https://pip.pypa.io/en/latest
39
-
40
- pip is the `package installer`_ for Python. You can use pip to install packages from the `Python Package Index`_ and other indexes.
41
-
42
- Please take a look at our documentation for how to install and use pip:
43
-
44
- * `Installation`_
45
- * `Usage`_
46
-
47
- We release updates regularly, with a new version every 3 months. Find more details in our documentation:
48
-
49
- * `Release notes`_
50
- * `Release process`_
51
-
52
- In pip 20.3, we've `made a big improvement to the heart of pip`_; `learn more`_. We want your input, so `sign up for our user experience research studies`_ to help us do it right.
53
-
54
- **Note**: pip 21.0, in January 2021, will remove Python 2 support, per pip's `Python 2 support policy`_. Please migrate to Python 3.
55
-
56
- If you find bugs, need help, or want to talk to the developers, please use our mailing lists or chat rooms:
57
-
58
- * `Issue tracking`_
59
- * `Discourse channel`_
60
- * `User IRC`_
61
-
62
- If you want to get involved head over to GitHub to get the source code, look at our development documentation and feel free to jump on the developer mailing lists and chat rooms:
63
-
64
- * `GitHub page`_
65
- * `Development documentation`_
66
- * `Development mailing list`_
67
- * `Development IRC`_
68
-
69
- Code of Conduct
70
- ---------------
71
-
72
- Everyone interacting in the pip project's codebases, issue trackers, chat
73
- rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_.
74
-
75
- .. _package installer: https://packaging.python.org/guides/tool-recommendations/
76
- .. _Python Package Index: https://pypi.org
77
- .. _Installation: https://pip.pypa.io/en/stable/installing.html
78
- .. _Usage: https://pip.pypa.io/en/stable/
79
- .. _Release notes: https://pip.pypa.io/en/stable/news.html
80
- .. _Release process: https://pip.pypa.io/en/latest/development/release-process/
81
- .. _GitHub page: https://github.com/pypa/pip
82
- .. _Development documentation: https://pip.pypa.io/en/latest/development
83
- .. _made a big improvement to the heart of pip: https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html
84
- .. _learn more: https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020
85
- .. _sign up for our user experience research studies: https://pyfound.blogspot.com/2020/03/new-pip-resolver-to-roll-out-this-year.html
86
- .. _Python 2 support policy: https://pip.pypa.io/en/latest/development/release-process/#python-2-support
87
- .. _Issue tracking: https://github.com/pypa/pip/issues
88
- .. _Discourse channel: https://discuss.python.org/c/packaging
89
- .. _Development mailing list: https://mail.python.org/mailman3/lists/distutils-sig.python.org/
90
- .. _User IRC: https://webchat.freenode.net/?channels=%23pypa
91
- .. _Development IRC: https://webchat.freenode.net/?channels=%23pypa-dev
92
- .. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md
93
-
94
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/RECORD DELETED
@@ -1,284 +0,0 @@
1
- ../../../bin/pip,sha256=FNlskPDg_3ZFyjCW6MuwdxtLZvedj3S2msnemxtSX7o,262
2
- ../../../bin/pip3,sha256=FNlskPDg_3ZFyjCW6MuwdxtLZvedj3S2msnemxtSX7o,262
3
- ../../../bin/pip3.9,sha256=FNlskPDg_3ZFyjCW6MuwdxtLZvedj3S2msnemxtSX7o,262
4
- pip-20.3.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
5
- pip-20.3.4.dist-info/LICENSE.txt,sha256=gdAS_gPyTUkBTvvgoNNlG9Mv1KFDTig6W1JdeMD2Efg,1090
6
- pip-20.3.4.dist-info/METADATA,sha256=NrQymkcD8Kl04ckwQXiv2W-ZCeORlee9lZ0RlurDR-o,4304
7
- pip-20.3.4.dist-info/RECORD,,
8
- pip-20.3.4.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- pip-20.3.4.dist-info/WHEEL,sha256=kGT74LWyRUZrL4VgLh6_g12IeVl_9u9ZVhadrgXZUEY,110
10
- pip-20.3.4.dist-info/entry_points.txt,sha256=5ExSa1s54zSPNA_1epJn5SX06786S8k5YHwskMvVYzw,125
11
- pip-20.3.4.dist-info/top_level.txt,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
12
- pip/__init__.py,sha256=dUUDS2wGpUgaxc_qko944J7JopSJIz53d0FM7Eml96k,455
13
- pip/__main__.py,sha256=bqCAM1cj1HwHCDx3WJa-LJxOBXimGxE8OjBqAvnhVg0,911
14
- pip/__pycache__/__init__.cpython-39.pyc,,
15
- pip/__pycache__/__main__.cpython-39.pyc,,
16
- pip/_internal/__init__.py,sha256=TeXyNeKLd7EETjf3lJAGSY1Db-dYA6a_xCLHWUkEmXA,495
17
- pip/_internal/__pycache__/__init__.cpython-39.pyc,,
18
- pip/_internal/__pycache__/build_env.cpython-39.pyc,,
19
- pip/_internal/__pycache__/cache.cpython-39.pyc,,
20
- pip/_internal/__pycache__/configuration.cpython-39.pyc,,
21
- pip/_internal/__pycache__/exceptions.cpython-39.pyc,,
22
- pip/_internal/__pycache__/locations.cpython-39.pyc,,
23
- pip/_internal/__pycache__/main.cpython-39.pyc,,
24
- pip/_internal/__pycache__/pyproject.cpython-39.pyc,,
25
- pip/_internal/__pycache__/self_outdated_check.cpython-39.pyc,,
26
- pip/_internal/__pycache__/wheel_builder.cpython-39.pyc,,
27
- pip/_internal/build_env.py,sha256=5PdJVlRvDe-fmGfc_wqOWtQ9Ad9gm2Elwfy2V5aVuio,8089
28
- pip/_internal/cache.py,sha256=HDTjGrm57Fl-vuojIcL17744KRCl66uuNXaAmwA8HLQ,12249
29
- pip/_internal/cli/__init__.py,sha256=FkHBgpxxb-_gd6r1FjnNhfMOzAUYyXoXKJ6abijfcFU,132
30
- pip/_internal/cli/__pycache__/__init__.cpython-39.pyc,,
31
- pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc,,
32
- pip/_internal/cli/__pycache__/base_command.cpython-39.pyc,,
33
- pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc,,
34
- pip/_internal/cli/__pycache__/command_context.cpython-39.pyc,,
35
- pip/_internal/cli/__pycache__/main.cpython-39.pyc,,
36
- pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc,,
37
- pip/_internal/cli/__pycache__/parser.cpython-39.pyc,,
38
- pip/_internal/cli/__pycache__/progress_bars.cpython-39.pyc,,
39
- pip/_internal/cli/__pycache__/req_command.cpython-39.pyc,,
40
- pip/_internal/cli/__pycache__/spinners.cpython-39.pyc,,
41
- pip/_internal/cli/__pycache__/status_codes.cpython-39.pyc,,
42
- pip/_internal/cli/autocompletion.py,sha256=ekGNtcDI0p7rFVc-7s4T9Tbss4Jgb7vsB649XJIblRg,6547
43
- pip/_internal/cli/base_command.py,sha256=duI7mshtryhdmzI9GeHGqssTZM4UkZW0IT5pX3SYqtA,9337
44
- pip/_internal/cli/cmdoptions.py,sha256=biNkTbqoY13QHo0BxnjndJFrQmzFSrEiR-5PKX30rWY,28617
45
- pip/_internal/cli/command_context.py,sha256=k1VHqTCeYjQ0b3tyqiUToA3An5FxpQmo5rb-9AHJ6VY,975
46
- pip/_internal/cli/main.py,sha256=Hxc9dZyW3xiDsYZX-_J2cGXT5DWNLNn_Y7o9oUme-Ec,2616
47
- pip/_internal/cli/main_parser.py,sha256=QSUbu5dPZ3pxsmChno8eH16kZxAcUkGy8YcCG_eeGrc,2830
48
- pip/_internal/cli/parser.py,sha256=ne2OH7B3xSeGPUelZkRQ38Tv9hqyl__sgyNiP3P55-U,10388
49
- pip/_internal/cli/progress_bars.py,sha256=J1zykt2LI4gbBeXorfYRmYV5FgXhcW4x3r6xE_a7Z7c,9121
50
- pip/_internal/cli/req_command.py,sha256=_WNGkkvnuP210DcZXWRUzJ8wMYNNQQ2Nw9mGOnHCHS4,16455
51
- pip/_internal/cli/spinners.py,sha256=GUQWNPnBD1CTRHxxumvUwodHovIvofMBu-bkaSaUnQY,5509
52
- pip/_internal/cli/status_codes.py,sha256=F6uDG6Gj7RNKQJUDnd87QKqI16Us-t-B0wPF_4QMpWc,156
53
- pip/_internal/commands/__init__.py,sha256=30max1NT-jWYrzAKwioPuUgD75EKubqLkBhHYmeZQH8,4101
54
- pip/_internal/commands/__pycache__/__init__.cpython-39.pyc,,
55
- pip/_internal/commands/__pycache__/cache.cpython-39.pyc,,
56
- pip/_internal/commands/__pycache__/check.cpython-39.pyc,,
57
- pip/_internal/commands/__pycache__/completion.cpython-39.pyc,,
58
- pip/_internal/commands/__pycache__/configuration.cpython-39.pyc,,
59
- pip/_internal/commands/__pycache__/debug.cpython-39.pyc,,
60
- pip/_internal/commands/__pycache__/download.cpython-39.pyc,,
61
- pip/_internal/commands/__pycache__/freeze.cpython-39.pyc,,
62
- pip/_internal/commands/__pycache__/hash.cpython-39.pyc,,
63
- pip/_internal/commands/__pycache__/help.cpython-39.pyc,,
64
- pip/_internal/commands/__pycache__/install.cpython-39.pyc,,
65
- pip/_internal/commands/__pycache__/list.cpython-39.pyc,,
66
- pip/_internal/commands/__pycache__/search.cpython-39.pyc,,
67
- pip/_internal/commands/__pycache__/show.cpython-39.pyc,,
68
- pip/_internal/commands/__pycache__/uninstall.cpython-39.pyc,,
69
- pip/_internal/commands/__pycache__/wheel.cpython-39.pyc,,
70
- pip/_internal/commands/cache.py,sha256=m7T9C6jB7fmNozyG24J1LkeTsoyfyIUYg_5otImUq64,7555
71
- pip/_internal/commands/check.py,sha256=NijmAIKljW3kY-V0QLMT7VttuEDtDroQa5qrfy4B-1I,1677
72
- pip/_internal/commands/completion.py,sha256=SFurXIoVZgXMhD-rPwyftjD2dtaOosIgBbHbCJ4Bnmo,3081
73
- pip/_internal/commands/configuration.py,sha256=i4uMbWcK-PW1VLY7f6eKklh7qO1Jnsvqvqe4cY6Uj4Y,9327
74
- pip/_internal/commands/debug.py,sha256=A54tXwZIEefYoOYlHvu-QbVyfNDqN00cHWkCe_6DdCU,8193
75
- pip/_internal/commands/download.py,sha256=NGk_sEGui-Id-1jki2FzbcTA4HZKEVbnImENnHGw8is,4919
76
- pip/_internal/commands/freeze.py,sha256=BcB1CYWMK95dE2SAkuk7aAhenv-pMVRfQQZ0_W8oKNc,3888
77
- pip/_internal/commands/hash.py,sha256=v2nYCiEsEI9nEam1p6GwdG8xyj5gFv-4WrqvNexKmeY,1843
78
- pip/_internal/commands/help.py,sha256=ofk4ez1AaR16kha-w4DLuWOi_B82wxU_2aT2VnHM8cg,1294
79
- pip/_internal/commands/install.py,sha256=L5depJz54VvwxCFV0_b9f1F_o4sKP9QR0dKIFH1ocL4,28449
80
- pip/_internal/commands/list.py,sha256=uM5Dvi9FIzT_QzLEIheQ-7C3vgOF3rh2B9CjCwPIHeY,11547
81
- pip/_internal/commands/search.py,sha256=YtTJydvon5CVZ5OYAvof495HyghFfMQkkUberJjYm1c,6033
82
- pip/_internal/commands/show.py,sha256=zk9FZqNPZ5Q4dGXnKrKdk3PaLPsWOHOwoFWGbMzhoKA,6996
83
- pip/_internal/commands/uninstall.py,sha256=Ys8hwFsg0kvvGtLGYG3ibL5BKvURhlSlCX50ZQ-hsHk,3311
84
- pip/_internal/commands/wheel.py,sha256=xvUMV9v_Qjwtip_4y1CWSTDVUdxa4dd4DY1PwtkXUxI,6802
85
- pip/_internal/configuration.py,sha256=B57qs7H0cGj8OPHQ8feeAzF8q333Wbdgd63pp1CtScM,13904
86
- pip/_internal/distributions/__init__.py,sha256=ECBUW5Gtu9TjJwyFLvim-i6kUMYVuikNh9I5asL6tbA,959
87
- pip/_internal/distributions/__pycache__/__init__.cpython-39.pyc,,
88
- pip/_internal/distributions/__pycache__/base.cpython-39.pyc,,
89
- pip/_internal/distributions/__pycache__/installed.cpython-39.pyc,,
90
- pip/_internal/distributions/__pycache__/sdist.cpython-39.pyc,,
91
- pip/_internal/distributions/__pycache__/wheel.cpython-39.pyc,,
92
- pip/_internal/distributions/base.py,sha256=rGDUfzALQQN-9vkrcbCl7bhGMQbQ-BdHLWW6xWJObQs,1426
93
- pip/_internal/distributions/installed.py,sha256=aUtTvTcnVQSEts20D0Z0ifHnfT-fwMA-SXoqAq5pR58,761
94
- pip/_internal/distributions/sdist.py,sha256=UvAp42AhjJwa0x-QM72GptF5k_Y7KXhEjm0owTrskG4,4087
95
- pip/_internal/distributions/wheel.py,sha256=lePMBDS_ptPq1NI7n-GQYbFdDn8RdCbXoZ1PagrqvW8,1295
96
- pip/_internal/exceptions.py,sha256=8_7M9CgtGmTHHwgvpT8Mg8iDli7DfIMoIDfIvpdXUSY,13003
97
- pip/_internal/index/__init__.py,sha256=vpt-JeTZefh8a-FC22ZeBSXFVbuBcXSGiILhQZJaNpQ,30
98
- pip/_internal/index/__pycache__/__init__.cpython-39.pyc,,
99
- pip/_internal/index/__pycache__/collector.cpython-39.pyc,,
100
- pip/_internal/index/__pycache__/package_finder.cpython-39.pyc,,
101
- pip/_internal/index/collector.py,sha256=gZ_9wP_AmiIS8TVlpzHOKZvQsZAXUwCmC4Tg12Uz7LE,22070
102
- pip/_internal/index/package_finder.py,sha256=l8bLOqUbTZuqt9js7lzqTTWfKzwErOsXiYE3tfJF0Mk,37454
103
- pip/_internal/locations.py,sha256=MEkFeloQEtkH2EgMbpAI2wHFDXVFV299pw_b1nCGYIM,6870
104
- pip/_internal/main.py,sha256=LqoUFbyaZAZ1wZ0xSZ6wIIx9-m1JoSnSDztWnjR_pMo,437
105
- pip/_internal/models/__init__.py,sha256=3DHUd_qxpPozfzouoqa9g9ts1Czr5qaHfFxbnxriepM,63
106
- pip/_internal/models/__pycache__/__init__.cpython-39.pyc,,
107
- pip/_internal/models/__pycache__/candidate.cpython-39.pyc,,
108
- pip/_internal/models/__pycache__/direct_url.cpython-39.pyc,,
109
- pip/_internal/models/__pycache__/format_control.cpython-39.pyc,,
110
- pip/_internal/models/__pycache__/index.cpython-39.pyc,,
111
- pip/_internal/models/__pycache__/link.cpython-39.pyc,,
112
- pip/_internal/models/__pycache__/scheme.cpython-39.pyc,,
113
- pip/_internal/models/__pycache__/search_scope.cpython-39.pyc,,
114
- pip/_internal/models/__pycache__/selection_prefs.cpython-39.pyc,,
115
- pip/_internal/models/__pycache__/target_python.cpython-39.pyc,,
116
- pip/_internal/models/__pycache__/wheel.cpython-39.pyc,,
117
- pip/_internal/models/candidate.py,sha256=GmprVP8YD1kXg4VlREolYjC_fqwLl7LfeCN-ZBSNNig,1196
118
- pip/_internal/models/direct_url.py,sha256=ZE07jfJmU_AlLgYOkuFup7kgsZP5k8BRewB8YXp50mc,6884
119
- pip/_internal/models/format_control.py,sha256=YFi9CrJrfpEkuS2DOCtrWqYudrho1BHaBSwT8KexxH8,2823
120
- pip/_internal/models/index.py,sha256=carvxxaT7mJyoEkptaECHUZiNaA6R5NrsGF55zawNn8,1161
121
- pip/_internal/models/link.py,sha256=BywYuw790dC1zvSFij8-Cm4QZfmUcupe6xSAmk3i8CM,7471
122
- pip/_internal/models/scheme.py,sha256=EhPkT_6G0Md84JTLSVopYsp5H_K6BREYmFvU8H6wMK8,778
123
- pip/_internal/models/search_scope.py,sha256=Lum0mY4_pdR9DDBy6HV5xHGIMPp_kU8vMsqYKFHZip4,4751
124
- pip/_internal/models/selection_prefs.py,sha256=1lS2d6nbrMrjWgRuwdl05tnGChjtDijKjG4XCbnuLmc,2045
125
- pip/_internal/models/target_python.py,sha256=PK8GMs15pSUGCG18RgTGmvxvYE8-M5WKnudl4CikTYM,4070
126
- pip/_internal/models/wheel.py,sha256=FTfzVb4WIbfIehxhdlAVvCil_MQ0-W44oyN56cE6NHc,2772
127
- pip/_internal/network/__init__.py,sha256=jf6Tt5nV_7zkARBrKojIXItgejvoegVJVKUbhAa5Ioc,50
128
- pip/_internal/network/__pycache__/__init__.cpython-39.pyc,,
129
- pip/_internal/network/__pycache__/auth.cpython-39.pyc,,
130
- pip/_internal/network/__pycache__/cache.cpython-39.pyc,,
131
- pip/_internal/network/__pycache__/download.cpython-39.pyc,,
132
- pip/_internal/network/__pycache__/lazy_wheel.cpython-39.pyc,,
133
- pip/_internal/network/__pycache__/session.cpython-39.pyc,,
134
- pip/_internal/network/__pycache__/utils.cpython-39.pyc,,
135
- pip/_internal/network/__pycache__/xmlrpc.cpython-39.pyc,,
136
- pip/_internal/network/auth.py,sha256=ntH7kjy1f6OI0O8s8RncqhyjwiiNkMChJVFB9PInP08,11652
137
- pip/_internal/network/cache.py,sha256=6rpBfrrzr9SaBy7_AM1EUH1pSFYq1pXCftMqk-1kkQQ,2329
138
- pip/_internal/network/download.py,sha256=mcmjWRKFOwdL6niizxm0ACv9tdf06TOYBK_xY4l_3c4,6401
139
- pip/_internal/network/lazy_wheel.py,sha256=o8DD4VooJvZJ2SfBsZDI4i85eONCITQKLydfklNroh0,8121
140
- pip/_internal/network/session.py,sha256=doOFU1lep6MjHBS_H1AVmRzcwEs7zcXbJtsfu7Xcgy0,15449
141
- pip/_internal/network/utils.py,sha256=ZPHg7u6DEcg2EvILIdPECnvPLp21OPHxNVmeXfMy-n0,4172
142
- pip/_internal/network/xmlrpc.py,sha256=4GnaQBJBKycuyWStRYUi93kmv70XootLfxOymAsP4SM,1883
143
- pip/_internal/operations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
- pip/_internal/operations/__pycache__/__init__.cpython-39.pyc,,
145
- pip/_internal/operations/__pycache__/check.cpython-39.pyc,,
146
- pip/_internal/operations/__pycache__/freeze.cpython-39.pyc,,
147
- pip/_internal/operations/__pycache__/prepare.cpython-39.pyc,,
148
- pip/_internal/operations/build/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
- pip/_internal/operations/build/__pycache__/__init__.cpython-39.pyc,,
150
- pip/_internal/operations/build/__pycache__/metadata.cpython-39.pyc,,
151
- pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-39.pyc,,
152
- pip/_internal/operations/build/__pycache__/wheel.cpython-39.pyc,,
153
- pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-39.pyc,,
154
- pip/_internal/operations/build/metadata.py,sha256=lXcRhnnN2-f49dYBNf1_NLkHZ-s-4OPV7tCOyJJmZ94,1255
155
- pip/_internal/operations/build/metadata_legacy.py,sha256=VgzBTk8naIO8-8N_ifEYF7ZAxWUDhphWVIaVlZ2FqYM,2011
156
- pip/_internal/operations/build/wheel.py,sha256=Ya0i8_uzfssdN2vorOVzNJYbAYVTLUnSZimCFdP4F7w,1466
157
- pip/_internal/operations/build/wheel_legacy.py,sha256=9CnTpc25Agvl9MnMgrVnHUWTlJ3um8aV4m9dbGdGHi0,3347
158
- pip/_internal/operations/check.py,sha256=EPNWcQyUSc3_pa_6Npv_mI5sXZ5zqRrmk0M67YViDIY,5216
159
- pip/_internal/operations/freeze.py,sha256=35mnNtUYhwYb_Lioo1RxHEgD7Eqm3KUqOOJ6RQQT_7Y,10411
160
- pip/_internal/operations/install/__init__.py,sha256=mX7hyD2GNBO2mFGokDQ30r_GXv7Y_PLdtxcUv144e-s,51
161
- pip/_internal/operations/install/__pycache__/__init__.cpython-39.pyc,,
162
- pip/_internal/operations/install/__pycache__/editable_legacy.cpython-39.pyc,,
163
- pip/_internal/operations/install/__pycache__/legacy.cpython-39.pyc,,
164
- pip/_internal/operations/install/__pycache__/wheel.cpython-39.pyc,,
165
- pip/_internal/operations/install/editable_legacy.py,sha256=rJ_xs2qtDUjpY2-n6eYlVyZiNoKbOtZXZrYrcnIELt4,1488
166
- pip/_internal/operations/install/legacy.py,sha256=zu3Gw54dgHtluyW5n8j5qKcAScidQXJvqB8fb0oLB-4,4281
167
- pip/_internal/operations/install/wheel.py,sha256=ENg_QbLbBnwYiPt1lzFIrQGu2QhkECxKm9_dTaaz5TU,31247
168
- pip/_internal/operations/prepare.py,sha256=-MKVSMKGYpqJ0y6fa1gq3eDvSKhR0ZLXZVlzaC_TVNo,22460
169
- pip/_internal/pyproject.py,sha256=DoQzvtOh5_wCPpU8E-J3IDCOKHvJw_SIY_gI8ih4I58,7400
170
- pip/_internal/req/__init__.py,sha256=s-E5Vxxqqpcs7xfY5gY69oHogsWJ4sLbnUiDoWmkHOU,3133
171
- pip/_internal/req/__pycache__/__init__.cpython-39.pyc,,
172
- pip/_internal/req/__pycache__/constructors.cpython-39.pyc,,
173
- pip/_internal/req/__pycache__/req_file.cpython-39.pyc,,
174
- pip/_internal/req/__pycache__/req_install.cpython-39.pyc,,
175
- pip/_internal/req/__pycache__/req_set.cpython-39.pyc,,
176
- pip/_internal/req/__pycache__/req_tracker.cpython-39.pyc,,
177
- pip/_internal/req/__pycache__/req_uninstall.cpython-39.pyc,,
178
- pip/_internal/req/constructors.py,sha256=0pLw8q5kozJyAUfFNCHGC3Y1acQV7FxuD6f-fVmrOMo,16135
179
- pip/_internal/req/req_file.py,sha256=f62QFxszUwN1q14Z_YZ3GdYm8mUCe2WoD0r8sDebQoE,18594
180
- pip/_internal/req/req_install.py,sha256=1d1QqpMV-xgGkNTF4j1guPNDV4_SxPbaFrvAvQthcrk,33803
181
- pip/_internal/req/req_set.py,sha256=csA7N4VelGpf-ovyFQRaxR9XTeAk2j9kiZHO6SIDxW0,7887
182
- pip/_internal/req/req_tracker.py,sha256=fVl3Pgl3yl12rFBQICYpy3StxWxD3j5pDWrHo8QmP7g,4691
183
- pip/_internal/req/req_uninstall.py,sha256=vuT3vX3zab3d8Gh-p1AgoDhpKU1P3OVyuC8a_57Es4U,23771
184
- pip/_internal/resolution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
- pip/_internal/resolution/__pycache__/__init__.cpython-39.pyc,,
186
- pip/_internal/resolution/__pycache__/base.cpython-39.pyc,,
187
- pip/_internal/resolution/base.py,sha256=MemTQyKXiVrtdxsGzuI7QqBd7Ek0wNHvCoe3ZLZO4_A,683
188
- pip/_internal/resolution/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
189
- pip/_internal/resolution/legacy/__pycache__/__init__.cpython-39.pyc,,
190
- pip/_internal/resolution/legacy/__pycache__/resolver.cpython-39.pyc,,
191
- pip/_internal/resolution/legacy/resolver.py,sha256=4aLvLZt0_BPHLaROEl9IjEhza9CZia8PLHlvZfMUMoQ,18234
192
- pip/_internal/resolution/resolvelib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
193
- pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-39.pyc,,
194
- pip/_internal/resolution/resolvelib/__pycache__/base.cpython-39.pyc,,
195
- pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-39.pyc,,
196
- pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-39.pyc,,
197
- pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-39.pyc,,
198
- pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-39.pyc,,
199
- pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-39.pyc,,
200
- pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-39.pyc,,
201
- pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-39.pyc,,
202
- pip/_internal/resolution/resolvelib/base.py,sha256=Kw8tB9Q7bYlJPIZmR4bGGRruk4SU9io5dnzshRVRvI4,5061
203
- pip/_internal/resolution/resolvelib/candidates.py,sha256=WNQUFRfJOokXCdpbTMadg9KcL2PXmhwnoXMwD6-E2Vo,20083
204
- pip/_internal/resolution/resolvelib/factory.py,sha256=ovOeMdAC2vhsZZLZbMqnisZaoBDlF8d64fJdpVCSMto,18946
205
- pip/_internal/resolution/resolvelib/found_candidates.py,sha256=_o9lCikecM_61kgl5xCKAByv_haREFlrc1qRoyVB9ts,3773
206
- pip/_internal/resolution/resolvelib/provider.py,sha256=bFS1-xUV9Pz1DefrDNfFaSlBjM785ftzoJi_fXbzdig,7339
207
- pip/_internal/resolution/resolvelib/reporter.py,sha256=dw4K2w0m7HEgxFF3r60voTrFDDPyhBLN8rzw4cQXaoo,2857
208
- pip/_internal/resolution/resolvelib/requirements.py,sha256=sps2y82iZtBdjPHZ16Ej9A4KdI7_8YC9R9nhAo1abyA,5969
209
- pip/_internal/resolution/resolvelib/resolver.py,sha256=ZHXXMwLkSUXfs0LG7gVK1IuIqNZlORNrwXjBmBVmDN4,11707
210
- pip/_internal/self_outdated_check.py,sha256=cVPuBaP89nm8Qdf_vVdXZxwtt8ebm4tL8fcStPl3dU8,6745
211
- pip/_internal/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
- pip/_internal/utils/__pycache__/__init__.cpython-39.pyc,,
213
- pip/_internal/utils/__pycache__/appdirs.cpython-39.pyc,,
214
- pip/_internal/utils/__pycache__/compat.cpython-39.pyc,,
215
- pip/_internal/utils/__pycache__/compatibility_tags.cpython-39.pyc,,
216
- pip/_internal/utils/__pycache__/datetime.cpython-39.pyc,,
217
- pip/_internal/utils/__pycache__/deprecation.cpython-39.pyc,,
218
- pip/_internal/utils/__pycache__/direct_url_helpers.cpython-39.pyc,,
219
- pip/_internal/utils/__pycache__/distutils_args.cpython-39.pyc,,
220
- pip/_internal/utils/__pycache__/encoding.cpython-39.pyc,,
221
- pip/_internal/utils/__pycache__/entrypoints.cpython-39.pyc,,
222
- pip/_internal/utils/__pycache__/filesystem.cpython-39.pyc,,
223
- pip/_internal/utils/__pycache__/filetypes.cpython-39.pyc,,
224
- pip/_internal/utils/__pycache__/glibc.cpython-39.pyc,,
225
- pip/_internal/utils/__pycache__/hashes.cpython-39.pyc,,
226
- pip/_internal/utils/__pycache__/inject_securetransport.cpython-39.pyc,,
227
- pip/_internal/utils/__pycache__/logging.cpython-39.pyc,,
228
- pip/_internal/utils/__pycache__/misc.cpython-39.pyc,,
229
- pip/_internal/utils/__pycache__/models.cpython-39.pyc,,
230
- pip/_internal/utils/__pycache__/packaging.cpython-39.pyc,,
231
- pip/_internal/utils/__pycache__/parallel.cpython-39.pyc,,
232
- pip/_internal/utils/__pycache__/pkg_resources.cpython-39.pyc,,
233
- pip/_internal/utils/__pycache__/setuptools_build.cpython-39.pyc,,
234
- pip/_internal/utils/__pycache__/subprocess.cpython-39.pyc,,
235
- pip/_internal/utils/__pycache__/temp_dir.cpython-39.pyc,,
236
- pip/_internal/utils/__pycache__/typing.cpython-39.pyc,,
237
- pip/_internal/utils/__pycache__/unpacking.cpython-39.pyc,,
238
- pip/_internal/utils/__pycache__/urls.cpython-39.pyc,,
239
- pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc,,
240
- pip/_internal/utils/__pycache__/wheel.cpython-39.pyc,,
241
- pip/_internal/utils/appdirs.py,sha256=RZzUG-Bkh2b-miX0DSZ3v703_-bgK-v0PfWCCjwVE9g,1349
242
- pip/_internal/utils/compat.py,sha256=JoSVxgMmV8ZZTwXrPRGgQk1EyomJZM3gb-nolCxslko,9489
243
- pip/_internal/utils/compatibility_tags.py,sha256=2frtUos4dHeHKV38noN_rs_u8VTehy4eMxqyEYVtZtY,5690
244
- pip/_internal/utils/datetime.py,sha256=KL-vIdGU9JIpGB5NYkmwXWkH-G_2mvvABlmRtoSZsao,295
245
- pip/_internal/utils/deprecation.py,sha256=pBnNogoA4UGTxa_JDnPXBRRYpKMbExAhXpBwAwklOBs,3318
246
- pip/_internal/utils/direct_url_helpers.py,sha256=Q0c-z0iuQx_D1FeRlu7nZD5h2nt4QSow23B26PQrp0s,4146
247
- pip/_internal/utils/distutils_args.py,sha256=a56mblNxk9BGifbpEETG61mmBrqhjtjRkJ4HYn-oOEE,1350
248
- pip/_internal/utils/encoding.py,sha256=53p3H36wc49dyr0EgtBbdHdvH4Dr-Egl0zc_J0sweqc,1284
249
- pip/_internal/utils/entrypoints.py,sha256=yvizXdrIeK44OI-J2YBIcojfrXxGO9oe8JCxBvMdxIk,1152
250
- pip/_internal/utils/filesystem.py,sha256=-fU3XteCAIJwf_9FvCZU7vhywvt3nuf_cqkCdwgy1Y8,6943
251
- pip/_internal/utils/filetypes.py,sha256=QvagL0Vm4tMZ_qyFqopZWpaDHEM3Q6FyF35vfOY-CJg,847
252
- pip/_internal/utils/glibc.py,sha256=LOeNGgawCKS-4ke9fii78fwXD73dtNav3uxz1Bf-Ab8,3297
253
- pip/_internal/utils/hashes.py,sha256=ydFGVhDk0Nj2JyaTKzUHRe5iBnbgh4KG-HFtXbr_xmo,5297
254
- pip/_internal/utils/inject_securetransport.py,sha256=M17ZlFVY66ApgeASVjKKLKNz0LAfk-SyU0HZ4ZB6MmI,810
255
- pip/_internal/utils/logging.py,sha256=YIfuDUEkmdn9cIRQ_Ec8rgXs1m5nOwDECtZqM4CBH5U,13093
256
- pip/_internal/utils/misc.py,sha256=BpnBnDkypGrWZHIBFU0g9IYsO6rglX8sQVnUselvY-8,28698
257
- pip/_internal/utils/models.py,sha256=HqiBVtTbW_b_Umvj2fjhDWOHo2RKhPwSz4iAYkQZ688,1201
258
- pip/_internal/utils/packaging.py,sha256=KOLx30EXZobHKTaA8khLNqEMb986DeaCcgDhZHaw6RY,3036
259
- pip/_internal/utils/parallel.py,sha256=d6wJWWHnPOcwO4pyL7pv08DG3l_5YtHzIBdhHhI3epw,3404
260
- pip/_internal/utils/pkg_resources.py,sha256=ZX-k7V5q_aNWyDse92nN7orN1aCpRLsaxzpkBZ1XKzU,1254
261
- pip/_internal/utils/setuptools_build.py,sha256=E1KswI7wfNnCDE5R6G8c9ZbByENpu7NqocjY26PCQDw,5058
262
- pip/_internal/utils/subprocess.py,sha256=nihl4bmnTpU4wQPjJESYNdTrS2-5T1SC00kM2JZx2gI,10866
263
- pip/_internal/utils/temp_dir.py,sha256=cmFpYI_5VDeXUsGvia9jUNh8XEKXYvpGlIi_iq2MRVU,8845
264
- pip/_internal/utils/typing.py,sha256=xkYwOeHlf4zsHXBDC4310HtEqwhQcYXFPq2h35Tcrl0,1401
265
- pip/_internal/utils/unpacking.py,sha256=YFAckhqqvmehA8Kan5vd3b1kN_9TafqmOk4b-yz4fho,9488
266
- pip/_internal/utils/urls.py,sha256=q2rw1kMiiig_XZcoyJSsWMJQqYw-2wUmrMoST4mCW_I,1527
267
- pip/_internal/utils/virtualenv.py,sha256=fNGrRp-8QmNL5OzXajBd-z7PbwOsx1XY6G-AVMAhfso,3706
268
- pip/_internal/utils/wheel.py,sha256=wFzn3h8GqYvgsyWPZtUyn0Rb3MJzmtyP3owMOhKnmL0,7303
269
- pip/_internal/vcs/__init__.py,sha256=viJxJRqRE_mVScum85bgQIXAd6o0ozFt18VpC-qIJrM,617
270
- pip/_internal/vcs/__pycache__/__init__.cpython-39.pyc,,
271
- pip/_internal/vcs/__pycache__/bazaar.cpython-39.pyc,,
272
- pip/_internal/vcs/__pycache__/git.cpython-39.pyc,,
273
- pip/_internal/vcs/__pycache__/mercurial.cpython-39.pyc,,
274
- pip/_internal/vcs/__pycache__/subversion.cpython-39.pyc,,
275
- pip/_internal/vcs/__pycache__/versioncontrol.cpython-39.pyc,,
276
- pip/_internal/vcs/bazaar.py,sha256=ivvSGrrYbryp7TU9Vn8hkJddcYCRfvKzqPx05o_G71k,4016
277
- pip/_internal/vcs/git.py,sha256=_RePK_kSTbjzsQCn5Dv-alIxoLPJu2GkhFjehd20bpY,15893
278
- pip/_internal/vcs/mercurial.py,sha256=EcevyquppjAS-y1CrDxcFPwAid0d9gEGhxVp_DUJSZ0,5564
279
- pip/_internal/vcs/subversion.py,sha256=OajehInnYm8T9BVD-yeaIjN5hG_F9ZSJqFlt5OZqEuk,12558
280
- pip/_internal/vcs/versioncontrol.py,sha256=_FmtOI-jxJl5vthUgedDgNJG-OHQK_6SLoEIvTNIES4,23767
281
- pip/_internal/wheel_builder.py,sha256=krzl8rpbRqlXDb3W---hqTPn09msEprUmpqpG2Bcys4,11889
282
- pip/_vendor/__init__.py,sha256=9W5OMec7OR5iGiLkewOfrMJ9Wt-FjLAezVSYzwHc2ds,5156
283
- pip/_vendor/__pycache__/__init__.cpython-39.pyc,,
284
- pip/_vendor/vendor.txt,sha256=B9Th9JlPs1TDBKZkMFiB54aghp1RFZHuJ5djqKyl6a0,437
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/REQUESTED DELETED
File without changes
copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/WHEEL DELETED
@@ -1,6 +0,0 @@
1
- Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.34.2)
3
- Root-Is-Purelib: true
4
- Tag: py2-none-any
5
- Tag: py3-none-any
6
-
 
 
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/entry_points.txt DELETED
@@ -1,5 +0,0 @@
1
- [console_scripts]
2
- pip = pip._internal.cli.main:main
3
- pip3 = pip._internal.cli.main:main
4
- pip3.9 = pip._internal.cli.main:main
5
-
 
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip-20.3.4.dist-info/top_level.txt DELETED
@@ -1 +0,0 @@
1
- pip
 
 
copy_check/lib/python3.9/site-packages/pip/__init__.py DELETED
@@ -1,18 +0,0 @@
1
- from pip._internal.utils.typing import MYPY_CHECK_RUNNING
2
-
3
- if MYPY_CHECK_RUNNING:
4
- from typing import List, Optional
5
-
6
-
7
- __version__ = "20.3.4"
8
-
9
-
10
- def main(args=None):
11
- # type: (Optional[List[str]]) -> int
12
- """This is an internal API only meant for use by pip's own console scripts.
13
-
14
- For additional details, see https://github.com/pypa/pip/issues/7498.
15
- """
16
- from pip._internal.utils.entrypoints import _wrapper
17
-
18
- return _wrapper(args)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip/__main__.py DELETED
@@ -1,26 +0,0 @@
1
- from __future__ import absolute_import
2
-
3
- import os
4
- import sys
5
-
6
- # Remove '' and current working directory from the first entry
7
- # of sys.path, if present to avoid using current directory
8
- # in pip commands check, freeze, install, list and show,
9
- # when invoked as python -m pip <command>
10
- if sys.path[0] in ('', os.getcwd()):
11
- sys.path.pop(0)
12
-
13
- # If we are running from a wheel, add the wheel to sys.path
14
- # This allows the usage python pip-*.whl/pip install pip-*.whl
15
- if __package__ == '':
16
- # __file__ is pip-*.whl/pip/__main__.py
17
- # first dirname call strips of '/__main__.py', second strips off '/pip'
18
- # Resulting path is the name of the wheel itself
19
- # Add that to sys.path so we can import pip
20
- path = os.path.dirname(os.path.dirname(__file__))
21
- sys.path.insert(0, path)
22
-
23
- from pip._internal.cli.main import main as _main # isort:skip # noqa
24
-
25
- if __name__ == '__main__':
26
- sys.exit(_main())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip/__pycache__/__init__.cpython-39.pyc DELETED
Binary file (670 Bytes)
 
copy_check/lib/python3.9/site-packages/pip/__pycache__/__main__.cpython-39.pyc DELETED
Binary file (514 Bytes)
 
copy_check/lib/python3.9/site-packages/pip/_internal/__init__.py DELETED
@@ -1,17 +0,0 @@
1
- import pip._internal.utils.inject_securetransport # noqa
2
- from pip._internal.utils.typing import MYPY_CHECK_RUNNING
3
-
4
- if MYPY_CHECK_RUNNING:
5
- from typing import List, Optional
6
-
7
-
8
- def main(args=None):
9
- # type: (Optional[List[str]]) -> int
10
- """This is preserved for old console scripts that may still be referencing
11
- it.
12
-
13
- For additional details, see https://github.com/pypa/pip/issues/7498.
14
- """
15
- from pip._internal.utils.entrypoints import _wrapper
16
-
17
- return _wrapper(args)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/__init__.cpython-39.pyc DELETED
Binary file (719 Bytes)
 
copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/build_env.cpython-39.pyc DELETED
Binary file (7.55 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/cache.cpython-39.pyc DELETED
Binary file (9.11 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/configuration.cpython-39.pyc DELETED
Binary file (10.9 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/exceptions.cpython-39.pyc DELETED
Binary file (14.9 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/locations.cpython-39.pyc DELETED
Binary file (4.58 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/main.cpython-39.pyc DELETED
Binary file (656 Bytes)
 
copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/pyproject.cpython-39.pyc DELETED
Binary file (3.76 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-39.pyc DELETED
Binary file (4.59 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-39.pyc DELETED
Binary file (8.63 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/build_env.py DELETED
@@ -1,242 +0,0 @@
1
- """Build Environment used for isolation during sdist building
2
- """
3
-
4
- import logging
5
- import os
6
- import sys
7
- import textwrap
8
- from collections import OrderedDict
9
- from distutils.sysconfig import get_python_lib
10
- from sysconfig import get_paths
11
-
12
- from pip._vendor.pkg_resources import Requirement, VersionConflict, WorkingSet
13
-
14
- from pip import __file__ as pip_location
15
- from pip._internal.cli.spinners import open_spinner
16
- from pip._internal.utils.subprocess import call_subprocess
17
- from pip._internal.utils.temp_dir import TempDirectory, tempdir_kinds
18
- from pip._internal.utils.typing import MYPY_CHECK_RUNNING
19
-
20
- if MYPY_CHECK_RUNNING:
21
- from types import TracebackType
22
- from typing import Iterable, List, Optional, Set, Tuple, Type
23
-
24
- from pip._internal.index.package_finder import PackageFinder
25
-
26
- logger = logging.getLogger(__name__)
27
-
28
-
29
- class _Prefix:
30
-
31
- def __init__(self, path):
32
- # type: (str) -> None
33
- self.path = path
34
- self.setup = False
35
- self.bin_dir = get_paths(
36
- 'nt' if os.name == 'nt' else 'posix_prefix',
37
- vars={'base': path, 'platbase': path}
38
- )['scripts']
39
- # Note: prefer distutils' sysconfig to get the
40
- # library paths so PyPy is correctly supported.
41
- purelib = get_python_lib(plat_specific=False, prefix=path)
42
- platlib = get_python_lib(plat_specific=True, prefix=path)
43
- if purelib == platlib:
44
- self.lib_dirs = [purelib]
45
- else:
46
- self.lib_dirs = [purelib, platlib]
47
-
48
-
49
- class BuildEnvironment(object):
50
- """Creates and manages an isolated environment to install build deps
51
- """
52
-
53
- def __init__(self):
54
- # type: () -> None
55
- temp_dir = TempDirectory(
56
- kind=tempdir_kinds.BUILD_ENV, globally_managed=True
57
- )
58
-
59
- self._prefixes = OrderedDict((
60
- (name, _Prefix(os.path.join(temp_dir.path, name)))
61
- for name in ('normal', 'overlay')
62
- ))
63
-
64
- self._bin_dirs = [] # type: List[str]
65
- self._lib_dirs = [] # type: List[str]
66
- for prefix in reversed(list(self._prefixes.values())):
67
- self._bin_dirs.append(prefix.bin_dir)
68
- self._lib_dirs.extend(prefix.lib_dirs)
69
-
70
- # Customize site to:
71
- # - ensure .pth files are honored
72
- # - prevent access to system site packages
73
- system_sites = {
74
- os.path.normcase(site) for site in (
75
- get_python_lib(plat_specific=False),
76
- get_python_lib(plat_specific=True),
77
- )
78
- }
79
- self._site_dir = os.path.join(temp_dir.path, 'site')
80
- if not os.path.exists(self._site_dir):
81
- os.mkdir(self._site_dir)
82
- with open(os.path.join(self._site_dir, 'sitecustomize.py'), 'w') as fp:
83
- fp.write(textwrap.dedent(
84
- '''
85
- import os, site, sys
86
-
87
- # First, drop system-sites related paths.
88
- original_sys_path = sys.path[:]
89
- known_paths = set()
90
- for path in {system_sites!r}:
91
- site.addsitedir(path, known_paths=known_paths)
92
- system_paths = set(
93
- os.path.normcase(path)
94
- for path in sys.path[len(original_sys_path):]
95
- )
96
- original_sys_path = [
97
- path for path in original_sys_path
98
- if os.path.normcase(path) not in system_paths
99
- ]
100
- sys.path = original_sys_path
101
-
102
- # Second, add lib directories.
103
- # ensuring .pth file are processed.
104
- for path in {lib_dirs!r}:
105
- assert not path in sys.path
106
- site.addsitedir(path)
107
- '''
108
- ).format(system_sites=system_sites, lib_dirs=self._lib_dirs))
109
-
110
- def __enter__(self):
111
- # type: () -> None
112
- self._save_env = {
113
- name: os.environ.get(name, None)
114
- for name in ('PATH', 'PYTHONNOUSERSITE', 'PYTHONPATH')
115
- }
116
-
117
- path = self._bin_dirs[:]
118
- old_path = self._save_env['PATH']
119
- if old_path:
120
- path.extend(old_path.split(os.pathsep))
121
-
122
- pythonpath = [self._site_dir]
123
-
124
- os.environ.update({
125
- 'PATH': os.pathsep.join(path),
126
- 'PYTHONNOUSERSITE': '1',
127
- 'PYTHONPATH': os.pathsep.join(pythonpath),
128
- })
129
-
130
- def __exit__(
131
- self,
132
- exc_type, # type: Optional[Type[BaseException]]
133
- exc_val, # type: Optional[BaseException]
134
- exc_tb # type: Optional[TracebackType]
135
- ):
136
- # type: (...) -> None
137
- for varname, old_value in self._save_env.items():
138
- if old_value is None:
139
- os.environ.pop(varname, None)
140
- else:
141
- os.environ[varname] = old_value
142
-
143
- def check_requirements(self, reqs):
144
- # type: (Iterable[str]) -> Tuple[Set[Tuple[str, str]], Set[str]]
145
- """Return 2 sets:
146
- - conflicting requirements: set of (installed, wanted) reqs tuples
147
- - missing requirements: set of reqs
148
- """
149
- missing = set()
150
- conflicting = set()
151
- if reqs:
152
- ws = WorkingSet(self._lib_dirs)
153
- for req in reqs:
154
- try:
155
- if ws.find(Requirement.parse(req)) is None:
156
- missing.add(req)
157
- except VersionConflict as e:
158
- conflicting.add((str(e.args[0].as_requirement()),
159
- str(e.args[1])))
160
- return conflicting, missing
161
-
162
- def install_requirements(
163
- self,
164
- finder, # type: PackageFinder
165
- requirements, # type: Iterable[str]
166
- prefix_as_string, # type: str
167
- message # type: str
168
- ):
169
- # type: (...) -> None
170
- prefix = self._prefixes[prefix_as_string]
171
- assert not prefix.setup
172
- prefix.setup = True
173
- if not requirements:
174
- return
175
- args = [
176
- sys.executable, os.path.dirname(pip_location), 'install',
177
- '--ignore-installed', '--no-user', '--prefix', prefix.path,
178
- '--no-warn-script-location',
179
- ] # type: List[str]
180
- if logger.getEffectiveLevel() <= logging.DEBUG:
181
- args.append('-v')
182
- for format_control in ('no_binary', 'only_binary'):
183
- formats = getattr(finder.format_control, format_control)
184
- args.extend(('--' + format_control.replace('_', '-'),
185
- ','.join(sorted(formats or {':none:'}))))
186
-
187
- index_urls = finder.index_urls
188
- if index_urls:
189
- args.extend(['-i', index_urls[0]])
190
- for extra_index in index_urls[1:]:
191
- args.extend(['--extra-index-url', extra_index])
192
- else:
193
- args.append('--no-index')
194
- for link in finder.find_links:
195
- args.extend(['--find-links', link])
196
-
197
- for host in finder.trusted_hosts:
198
- args.extend(['--trusted-host', host])
199
- if finder.allow_all_prereleases:
200
- args.append('--pre')
201
- if finder.prefer_binary:
202
- args.append('--prefer-binary')
203
- args.append('--')
204
- args.extend(requirements)
205
- with open_spinner(message) as spinner:
206
- call_subprocess(args, spinner=spinner)
207
-
208
-
209
- class NoOpBuildEnvironment(BuildEnvironment):
210
- """A no-op drop-in replacement for BuildEnvironment
211
- """
212
-
213
- def __init__(self):
214
- # type: () -> None
215
- pass
216
-
217
- def __enter__(self):
218
- # type: () -> None
219
- pass
220
-
221
- def __exit__(
222
- self,
223
- exc_type, # type: Optional[Type[BaseException]]
224
- exc_val, # type: Optional[BaseException]
225
- exc_tb # type: Optional[TracebackType]
226
- ):
227
- # type: (...) -> None
228
- pass
229
-
230
- def cleanup(self):
231
- # type: () -> None
232
- pass
233
-
234
- def install_requirements(
235
- self,
236
- finder, # type: PackageFinder
237
- requirements, # type: Iterable[str]
238
- prefix_as_string, # type: str
239
- message # type: str
240
- ):
241
- # type: (...) -> None
242
- raise NotImplementedError()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip/_internal/cache.py DELETED
@@ -1,346 +0,0 @@
1
- """Cache Management
2
- """
3
-
4
- import hashlib
5
- import json
6
- import logging
7
- import os
8
-
9
- from pip._vendor.packaging.tags import interpreter_name, interpreter_version
10
- from pip._vendor.packaging.utils import canonicalize_name
11
-
12
- from pip._internal.exceptions import InvalidWheelFilename
13
- from pip._internal.models.link import Link
14
- from pip._internal.models.wheel import Wheel
15
- from pip._internal.utils.temp_dir import TempDirectory, tempdir_kinds
16
- from pip._internal.utils.typing import MYPY_CHECK_RUNNING
17
- from pip._internal.utils.urls import path_to_url
18
-
19
- if MYPY_CHECK_RUNNING:
20
- from typing import Any, Dict, List, Optional, Set
21
-
22
- from pip._vendor.packaging.tags import Tag
23
-
24
- from pip._internal.models.format_control import FormatControl
25
-
26
- logger = logging.getLogger(__name__)
27
-
28
-
29
- def _hash_dict(d):
30
- # type: (Dict[str, str]) -> str
31
- """Return a stable sha224 of a dictionary."""
32
- s = json.dumps(d, sort_keys=True, separators=(",", ":"), ensure_ascii=True)
33
- return hashlib.sha224(s.encode("ascii")).hexdigest()
34
-
35
-
36
- class Cache(object):
37
- """An abstract class - provides cache directories for data from links
38
-
39
-
40
- :param cache_dir: The root of the cache.
41
- :param format_control: An object of FormatControl class to limit
42
- binaries being read from the cache.
43
- :param allowed_formats: which formats of files the cache should store.
44
- ('binary' and 'source' are the only allowed values)
45
- """
46
-
47
- def __init__(self, cache_dir, format_control, allowed_formats):
48
- # type: (str, FormatControl, Set[str]) -> None
49
- super(Cache, self).__init__()
50
- assert not cache_dir or os.path.isabs(cache_dir)
51
- self.cache_dir = cache_dir or None
52
- self.format_control = format_control
53
- self.allowed_formats = allowed_formats
54
-
55
- _valid_formats = {"source", "binary"}
56
- assert self.allowed_formats.union(_valid_formats) == _valid_formats
57
-
58
- def _get_cache_path_parts_legacy(self, link):
59
- # type: (Link) -> List[str]
60
- """Get parts of part that must be os.path.joined with cache_dir
61
-
62
- Legacy cache key (pip < 20) for compatibility with older caches.
63
- """
64
-
65
- # We want to generate an url to use as our cache key, we don't want to
66
- # just re-use the URL because it might have other items in the fragment
67
- # and we don't care about those.
68
- key_parts = [link.url_without_fragment]
69
- if link.hash_name is not None and link.hash is not None:
70
- key_parts.append("=".join([link.hash_name, link.hash]))
71
- key_url = "#".join(key_parts)
72
-
73
- # Encode our key url with sha224, we'll use this because it has similar
74
- # security properties to sha256, but with a shorter total output (and
75
- # thus less secure). However the differences don't make a lot of
76
- # difference for our use case here.
77
- hashed = hashlib.sha224(key_url.encode()).hexdigest()
78
-
79
- # We want to nest the directories some to prevent having a ton of top
80
- # level directories where we might run out of sub directories on some
81
- # FS.
82
- parts = [hashed[:2], hashed[2:4], hashed[4:6], hashed[6:]]
83
-
84
- return parts
85
-
86
- def _get_cache_path_parts(self, link):
87
- # type: (Link) -> List[str]
88
- """Get parts of part that must be os.path.joined with cache_dir
89
- """
90
-
91
- # We want to generate an url to use as our cache key, we don't want to
92
- # just re-use the URL because it might have other items in the fragment
93
- # and we don't care about those.
94
- key_parts = {"url": link.url_without_fragment}
95
- if link.hash_name is not None and link.hash is not None:
96
- key_parts[link.hash_name] = link.hash
97
- if link.subdirectory_fragment:
98
- key_parts["subdirectory"] = link.subdirectory_fragment
99
-
100
- # Include interpreter name, major and minor version in cache key
101
- # to cope with ill-behaved sdists that build a different wheel
102
- # depending on the python version their setup.py is being run on,
103
- # and don't encode the difference in compatibility tags.
104
- # https://github.com/pypa/pip/issues/7296
105
- key_parts["interpreter_name"] = interpreter_name()
106
- key_parts["interpreter_version"] = interpreter_version()
107
-
108
- # Encode our key url with sha224, we'll use this because it has similar
109
- # security properties to sha256, but with a shorter total output (and
110
- # thus less secure). However the differences don't make a lot of
111
- # difference for our use case here.
112
- hashed = _hash_dict(key_parts)
113
-
114
- # We want to nest the directories some to prevent having a ton of top
115
- # level directories where we might run out of sub directories on some
116
- # FS.
117
- parts = [hashed[:2], hashed[2:4], hashed[4:6], hashed[6:]]
118
-
119
- return parts
120
-
121
- def _get_candidates(self, link, canonical_package_name):
122
- # type: (Link, str) -> List[Any]
123
- can_not_cache = (
124
- not self.cache_dir or
125
- not canonical_package_name or
126
- not link
127
- )
128
- if can_not_cache:
129
- return []
130
-
131
- formats = self.format_control.get_allowed_formats(
132
- canonical_package_name
133
- )
134
- if not self.allowed_formats.intersection(formats):
135
- return []
136
-
137
- candidates = []
138
- path = self.get_path_for_link(link)
139
- if os.path.isdir(path):
140
- for candidate in os.listdir(path):
141
- candidates.append((candidate, path))
142
- # TODO remove legacy path lookup in pip>=21
143
- legacy_path = self.get_path_for_link_legacy(link)
144
- if os.path.isdir(legacy_path):
145
- for candidate in os.listdir(legacy_path):
146
- candidates.append((candidate, legacy_path))
147
- return candidates
148
-
149
- def get_path_for_link_legacy(self, link):
150
- # type: (Link) -> str
151
- raise NotImplementedError()
152
-
153
- def get_path_for_link(self, link):
154
- # type: (Link) -> str
155
- """Return a directory to store cached items in for link.
156
- """
157
- raise NotImplementedError()
158
-
159
- def get(
160
- self,
161
- link, # type: Link
162
- package_name, # type: Optional[str]
163
- supported_tags, # type: List[Tag]
164
- ):
165
- # type: (...) -> Link
166
- """Returns a link to a cached item if it exists, otherwise returns the
167
- passed link.
168
- """
169
- raise NotImplementedError()
170
-
171
-
172
- class SimpleWheelCache(Cache):
173
- """A cache of wheels for future installs.
174
- """
175
-
176
- def __init__(self, cache_dir, format_control):
177
- # type: (str, FormatControl) -> None
178
- super(SimpleWheelCache, self).__init__(
179
- cache_dir, format_control, {"binary"}
180
- )
181
-
182
- def get_path_for_link_legacy(self, link):
183
- # type: (Link) -> str
184
- parts = self._get_cache_path_parts_legacy(link)
185
- assert self.cache_dir
186
- return os.path.join(self.cache_dir, "wheels", *parts)
187
-
188
- def get_path_for_link(self, link):
189
- # type: (Link) -> str
190
- """Return a directory to store cached wheels for link
191
-
192
- Because there are M wheels for any one sdist, we provide a directory
193
- to cache them in, and then consult that directory when looking up
194
- cache hits.
195
-
196
- We only insert things into the cache if they have plausible version
197
- numbers, so that we don't contaminate the cache with things that were
198
- not unique. E.g. ./package might have dozens of installs done for it
199
- and build a version of 0.0...and if we built and cached a wheel, we'd
200
- end up using the same wheel even if the source has been edited.
201
-
202
- :param link: The link of the sdist for which this will cache wheels.
203
- """
204
- parts = self._get_cache_path_parts(link)
205
- assert self.cache_dir
206
- # Store wheels within the root cache_dir
207
- return os.path.join(self.cache_dir, "wheels", *parts)
208
-
209
- def get(
210
- self,
211
- link, # type: Link
212
- package_name, # type: Optional[str]
213
- supported_tags, # type: List[Tag]
214
- ):
215
- # type: (...) -> Link
216
- candidates = []
217
-
218
- if not package_name:
219
- return link
220
-
221
- canonical_package_name = canonicalize_name(package_name)
222
- for wheel_name, wheel_dir in self._get_candidates(
223
- link, canonical_package_name
224
- ):
225
- try:
226
- wheel = Wheel(wheel_name)
227
- except InvalidWheelFilename:
228
- continue
229
- if canonicalize_name(wheel.name) != canonical_package_name:
230
- logger.debug(
231
- "Ignoring cached wheel %s for %s as it "
232
- "does not match the expected distribution name %s.",
233
- wheel_name, link, package_name,
234
- )
235
- continue
236
- if not wheel.supported(supported_tags):
237
- # Built for a different python/arch/etc
238
- continue
239
- candidates.append(
240
- (
241
- wheel.support_index_min(supported_tags),
242
- wheel_name,
243
- wheel_dir,
244
- )
245
- )
246
-
247
- if not candidates:
248
- return link
249
-
250
- _, wheel_name, wheel_dir = min(candidates)
251
- return Link(path_to_url(os.path.join(wheel_dir, wheel_name)))
252
-
253
-
254
- class EphemWheelCache(SimpleWheelCache):
255
- """A SimpleWheelCache that creates it's own temporary cache directory
256
- """
257
-
258
- def __init__(self, format_control):
259
- # type: (FormatControl) -> None
260
- self._temp_dir = TempDirectory(
261
- kind=tempdir_kinds.EPHEM_WHEEL_CACHE,
262
- globally_managed=True,
263
- )
264
-
265
- super(EphemWheelCache, self).__init__(
266
- self._temp_dir.path, format_control
267
- )
268
-
269
-
270
- class CacheEntry(object):
271
- def __init__(
272
- self,
273
- link, # type: Link
274
- persistent, # type: bool
275
- ):
276
- self.link = link
277
- self.persistent = persistent
278
-
279
-
280
- class WheelCache(Cache):
281
- """Wraps EphemWheelCache and SimpleWheelCache into a single Cache
282
-
283
- This Cache allows for gracefully degradation, using the ephem wheel cache
284
- when a certain link is not found in the simple wheel cache first.
285
- """
286
-
287
- def __init__(self, cache_dir, format_control):
288
- # type: (str, FormatControl) -> None
289
- super(WheelCache, self).__init__(
290
- cache_dir, format_control, {'binary'}
291
- )
292
- self._wheel_cache = SimpleWheelCache(cache_dir, format_control)
293
- self._ephem_cache = EphemWheelCache(format_control)
294
-
295
- def get_path_for_link_legacy(self, link):
296
- # type: (Link) -> str
297
- return self._wheel_cache.get_path_for_link_legacy(link)
298
-
299
- def get_path_for_link(self, link):
300
- # type: (Link) -> str
301
- return self._wheel_cache.get_path_for_link(link)
302
-
303
- def get_ephem_path_for_link(self, link):
304
- # type: (Link) -> str
305
- return self._ephem_cache.get_path_for_link(link)
306
-
307
- def get(
308
- self,
309
- link, # type: Link
310
- package_name, # type: Optional[str]
311
- supported_tags, # type: List[Tag]
312
- ):
313
- # type: (...) -> Link
314
- cache_entry = self.get_cache_entry(link, package_name, supported_tags)
315
- if cache_entry is None:
316
- return link
317
- return cache_entry.link
318
-
319
- def get_cache_entry(
320
- self,
321
- link, # type: Link
322
- package_name, # type: Optional[str]
323
- supported_tags, # type: List[Tag]
324
- ):
325
- # type: (...) -> Optional[CacheEntry]
326
- """Returns a CacheEntry with a link to a cached item if it exists or
327
- None. The cache entry indicates if the item was found in the persistent
328
- or ephemeral cache.
329
- """
330
- retval = self._wheel_cache.get(
331
- link=link,
332
- package_name=package_name,
333
- supported_tags=supported_tags,
334
- )
335
- if retval is not link:
336
- return CacheEntry(retval, persistent=True)
337
-
338
- retval = self._ephem_cache.get(
339
- link=link,
340
- package_name=package_name,
341
- supported_tags=supported_tags,
342
- )
343
- if retval is not link:
344
- return CacheEntry(retval, persistent=False)
345
-
346
- return None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip/_internal/cli/__init__.py DELETED
@@ -1,4 +0,0 @@
1
- """Subpackage containing all of pip's command line interface related code
2
- """
3
-
4
- # This file intentionally does not import submodules
 
 
 
 
 
copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-39.pyc DELETED
Binary file (277 Bytes)
 
copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc DELETED
Binary file (4.96 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-39.pyc DELETED
Binary file (6.86 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc DELETED
Binary file (20.8 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-39.pyc DELETED
Binary file (1.36 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main.cpython-39.pyc DELETED
Binary file (1.46 kB)
 
copy_check/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc DELETED
Binary file (2.25 kB)