Несмотря на то, что это инструмент для программистов на Python, Pyright реализован на TypeScript, работающем на Node, и документация сообщает нам , что его можно установить с помощью одного из менеджеров пакетов для этой экосистемы, такого как [ 117] NPM или Пряжа . Если вы хотите установить его для использования в любом месте системы (а не только в конкретном проекте Node), вам потребуется установка global
.
npm install --global pyright
или
yarn global add pyright
Это добавит интерфейс командной строки pyright
.
$ pyright
Usage: pyright [options] file...
Вы можете запустить это для своих файлов, просто указав их в командной строке, но для проекта вы можете захотеть создать файл pyrightconfig.json
, идентифицирующий файлы как проверил и интерпретаторы Python, библиотеки и определения типов, которые он должен использовать. Некоторые из этих опций также могут быть переданы в качестве аргументов командной строки , но не все из них.
Взгляните на fcntl опции. Возможно, F_GETFL
с O_ACCMODE
.
Править: Я сделал немного поиска с помощью Google и проигрывания за ланчем и здесь являюсь некоторыми, вероятно, непортативный код, но это работает на мое поле Linux и вероятно какую-либо систему Posix (возможно, даже Cygwin, который знает?).
use strict;
use Fcntl;
use IO::File;
my $file;
my %modes = ( 0 => 'Read only', 1 => 'Write only', 2 => 'Read / Write' );
sub open_type {
my $fh = shift;
my $mode = fcntl($fh, F_GETFL, 0);
print "File is: " . $modes{$mode & 3} . "\n";
}
print "out\n";
$file = new IO::File();
$file->open('> /tmp/out');
open_type($file);
print "\n";
print "in\n";
$file = new IO::File();
$file->open('< /etc/passwd');
open_type($file);
print "\n";
print "both\n";
$file = new IO::File();
$file->open('+< /tmp/out');
open_type($file);
Пример произвел:
$ perl test.pl
out
File is: Write only
in
File is: Read only
both
File is: Read / Write