1.2.0-dev.20240505 • Published 5 days ago

@zzzen/pyright-internal v1.2.0-dev.20240505

Weekly downloads
-
License
MIT
Repository
github
Last release
5 days ago

@zzzen/pyright-internal

Repackaged pyright-internal with type declaration enabled.

Installation

npm i @zzzen/pyright-internal

Demo

print ast of code

import { ImportResolver } from "@zzzen/pyright-internal/dist/analyzer/importResolver";
import { printParseNodeType } from "@zzzen/pyright-internal/dist/analyzer/parseTreeUtils";
import { ParseTreeWalker } from "@zzzen/pyright-internal/dist/analyzer/parseTreeWalker";
import { Program } from "@zzzen/pyright-internal/dist/analyzer/program";
import { ConfigOptions } from "@zzzen/pyright-internal/dist/common/configOptions";
import {
  lib,
  sitePackages,
} from "@zzzen/pyright-internal/dist/common/pathConsts";
import {
  combinePaths,
  normalizeSlashes,
} from "@zzzen/pyright-internal/dist/common/pathUtils";
import { ParseNode } from "@zzzen/pyright-internal/dist/parser/parseNodes";
import { PyrightFileSystem } from "@zzzen/pyright-internal/dist/pyrightFileSystem";
import { TestAccessHost } from "@zzzen/pyright-internal/dist/tests/harness/testAccessHost";
import { TestFileSystem } from "@zzzen/pyright-internal/dist/tests/harness/vfs/filesystem";

const FILE_PATH = "/t.py";

const defaultCode = `
def f(a = 1):
  return a
f(1)
`;

// console.log(process.execArgv.join())
const libraryRoot = combinePaths(normalizeSlashes("/"), lib, sitePackages);

const tfs = new TestFileSystem(false, {
  files: {
    [FILE_PATH]: defaultCode,
  },
});

const fs = new PyrightFileSystem(tfs);

const configOptions = new ConfigOptions(normalizeSlashes("/"));
configOptions.typeshedPath = normalizeSlashes(
  "/node_modules/pyright/dist/typeshed-fallback"
);
const importResolver = new ImportResolver(
  fs,
  configOptions,
  new TestAccessHost(fs.getModulePath(), [libraryRoot])
);
const program = new Program(importResolver, configOptions);
program.setTrackedFiles([FILE_PATH]);

while (program.analyze()) {
  // Continue to call analyze until it completes. Since we're not
  // specifying a timeout, it should complete the first time.
}

const sourceFile = program.getSourceFile(FILE_PATH)!;

class PrintWalker extends ParseTreeWalker {
  override visitNode(node: ParseNode) {
    console.log(printParseNodeType(node.nodeType));
    return super.visitNode(node);
  }
}

new PrintWalker().walk(sourceFile.getParseResults()!.parseTree);

For more details, checkout pyright-ast-viewer.

1.2.0-dev.20240324

2 months ago

1.2.0-dev.20240317

2 months ago

1.2.0-dev.20240310

2 months ago

1.2.0-dev.20240307

2 months ago

1.2.0-dev.20240225

3 months ago

1.2.0-dev.20240218

3 months ago

1.2.0-dev.20240128

3 months ago

1.2.0-dev.20240121

4 months ago

1.2.0-dev.20240114

4 months ago

1.2.0-dev.20240107

4 months ago

1.2.0-dev.20231231

4 months ago

1.2.0-dev.20231224

5 months ago

1.2.0-dev.20231217

5 months ago

1.2.0-dev.20231210

5 months ago

1.2.0-dev.20231001

7 months ago

1.2.0-dev.20231203

5 months ago

1.2.0-dev.20231126

6 months ago

1.2.0-dev.20230910

8 months ago

1.2.0-dev.20231008

7 months ago

1.2.0-dev.20230716

10 months ago

1.2.0-dev.20230917

8 months ago

1.2.0-dev.20231112

6 months ago

1.2.0-dev.20231119

6 months ago

1.2.0-dev.20230820

9 months ago

1.2.0-dev.20230903

8 months ago

1.2.0-dev.20230827

9 months ago

1.2.0-dev.20230709

10 months ago

1.2.0-dev.20231022

7 months ago

1.2.0-dev.20230730

10 months ago

1.2.0-dev.20231105

6 months ago

1.2.0-dev.20231029

6 months ago

1.2.0-dev.20230813

9 months ago

1.2.0-dev.20231015

7 months ago

1.2.0-dev.20230723

10 months ago

1.2.0-dev.20230924

8 months ago

1.2.0-dev.20230806

9 months ago

1.2.0-dev.20230702

10 months ago

1.2.0-dev.20230514

12 months ago

1.2.0-dev.20230625

11 months ago

1.2.0-dev.20230611

11 months ago

1.2.0-dev.20230618

11 months ago

1.2.0-dev.20230521

12 months ago

1.2.0-dev.20230604

11 months ago

1.2.0-dev.20230528

12 months ago

1.2.0-beta

2 years ago

1.1.255

2 years ago

1.1.254

2 years ago