Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/workflows/pylint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Pylint

on: [push, pull_request]

jobs:
pylint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v1
with:
python-version: '3.10'
architecture: 'x64'
- name: Install Pylint
run: |
python -m pip install --upgrade pip
pip install pylint
- name: Pylint check
run: dev_tools/pylint
73 changes: 73 additions & 0 deletions dev_tools/.pylintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
[MASTER]
load-plugins=pylint.extensions.docstyle,pylint.extensions.docparams,pylint_copyright_checker
max-line-length=88
disable=all
#ignore-paths=cirq-google/cirq_google/cloud/.*
ignore-patterns=.*_pb2\.py
output-format=colorized
score=no
reports=no
enable=
anomalous-backslash-in-string,
assert-on-tuple,
bad-indentation,
bad-option-value,
bad-reversed-sequence,
bad-super-call,
consider-merging-isinstance,
continue-in-finally,
dangerous-default-value,
docstyle,
duplicate-argument-name,
expression-not-assigned,
function-redefined,
inconsistent-mro,
init-is-generator,
line-too-long,
lost-exception,
missing-kwoa,
missing-param-doc,
missing-raises-doc,
mixed-line-endings,
no-value-for-parameter,
nonexistent-operator,
not-in-loop,
pointless-statement,
redefined-builtin,
return-arg-in-generator,
return-in-init,
return-outside-function,
simplifiable-if-statement,
singleton-comparison,
syntax-error,
too-many-function-args,
trailing-whitespace,
undefined-variable,
unexpected-keyword-arg,
unhashable-dict-key,
unnecessary-pass,
unreachable,
unrecognized-inline-option,
unused-import,
unnecessary-semicolon,
unused-variable,
unused-wildcard-import,
wildcard-import,
wrong-import-order,
wrong-import-position,
yield-outside-function

# Ignore long lines containing urls or pylint directives.
ignore-long-lines=^(.*#\w*pylint: disable.*|\s*(# )?[<\[\(]?https?://\S+[>\]\)]?)$

[TYPECHECK]

# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=numpy.*


#[IMPORTS]
# Force import order to recognize a module as part of a third party library.
#known-third-party=cirq,cirq_google,cirq_aqt,cirq_ionq
15 changes: 15 additions & 0 deletions dev_tools/pylint
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env bash

################################################################################
# Runs pylint on the repository using a preconfigured .pylintrc file.
#
# Usage:
# check/pylint [--flags for pylint]
################################################################################

# Get the working directory to the repo root.
cd "$(dirname "${BASH_SOURCE[0]}")"
cd "$(git rev-parse --show-toplevel)"

# Add dev_tools to $PYTHONPATH so that pylint can find custom checkers
env PYTHONPATH=dev_tools pylint --jobs=0 --rcfile=dev_tools/.pylintrc "$@" .
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ cirq-core>=0.15.0
cirq-google>=0.15.0
# When changing Cirq requirements be sure to update dev_tools/write-ci-requirements.py

seaborn
ipython
black
pylint
pytest