GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — pyperformance/dev.py at main · python/pyperformance Expand file tree/ Copy pathdev.pyMore file actions 85 lines (68 loc) · 2.72 KB / Copy pathdev.pyFile metadata and controls85 lines (68 loc) · 2.72 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 # A script for running pyperformance out of the repo in dev-mode. import os.path import sys REPO_ROOT = os.path.dirname(os.path.abspath(__file__)) VENVS = os.path.join(REPO_ROOT, ".venvs") def resolve_venv_root(kind="dev", venvsdir=VENVS): import sysconfig if sysconfig.is_python_build(): sys.exit("please install your built Python first (or pass it using --python)") # XXX Handle other implementations too? base = os.path.join(venvsdir, kind or "dev") major, minor = sys.version_info[:2] pyloc = ( (os.path.abspath(sys.executable)).partition(os.path.sep)[2].lstrip(os.path.sep) ).replace(os.path.sep, "-") return f"{base}-{major}.{minor}-{pyloc}" def ensure_venv_ready(venvroot=None, kind="dev", venvsdir=VENVS): if sys.prefix != sys.base_prefix: assert os.path.exists(os.path.join(sys.prefix, "pyvenv.cfg")) venvroot = sys.prefix python = sys.executable readyfile = os.path.join(sys.prefix, "READY") isready = os.path.exists(readyfile) else: import venv if not venvroot: venvroot = resolve_venv_root(kind, venvsdir) # Make sure the venv exists. readyfile = os.path.join(venvroot, "READY") isready = os.path.exists(readyfile) if not isready: relroot = os.path.relpath(venvroot) if not os.path.exists(venvroot): print(f"creating venv at {relroot}...") else: print(f"venv {relroot} not ready, re-creating...") venv.create(venvroot, with_pip=True, clear=True) else: assert os.path.exists(os.path.join(venvroot, "pyvenv.cfg")) # Return the venv's Python executable. binname = "Scripts" if os.name == "nt" else "bin" exename = os.path.basename(sys.executable) python = os.path.join(venvroot, binname, exename) # Now make sure the venv has pyperformance installed. if not isready: import subprocess relroot = os.path.relpath(venvroot) print(f"venv {relroot} not ready, installing dependencies...") proc = subprocess.run( [python, "-m", "pip", "install", "--upgrade", "--editable", REPO_ROOT], ) if proc.returncode != 0: sys.exit("ERROR: install failed") with open(readyfile, "w"): pass print("...venv {relroot} ready!") return venvroot, python def main(venvroot=None): _, python = ensure_venv_ready(venvroot) if python != sys.executable: # Now re-run using the venv. os.execv(python, [python, *sys.argv]) # <unreachable> # Now run pyperformance. import pyperformance.cli pyperformance.cli.main() if __name__ == "__main__": main() |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |